diff --git a/sql/examples/ha_tina.cc b/sql/examples/ha_tina.cc index e01cc7cc980..5663cd829bd 100644 --- a/sql/examples/ha_tina.cc +++ b/sql/examples/ha_tina.cc @@ -234,6 +234,16 @@ static int free_share(TINA_SHARE *share) DBUG_RETURN(result_code); } +bool tina_end() +{ + if (tina_init) + { + hash_free(&tina_open_tables); + VOID(pthread_mutex_destroy(&tina_mutex)); + } + tina_init= 0; + return FALSE; +} /* Finds the end of a line. diff --git a/sql/examples/ha_tina.h b/sql/examples/ha_tina.h index 5679d77a4dc..1ccb3418771 100644 --- a/sql/examples/ha_tina.h +++ b/sql/examples/ha_tina.h @@ -126,3 +126,6 @@ public: int find_current_row(byte *buf); int chain_append(); }; + +bool tina_end(); + diff --git a/sql/handler.cc b/sql/handler.cc index 5f8fa33fecc..41fb3a31ddc 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -598,6 +598,10 @@ int ha_panic(enum ha_panic_function flag) #ifdef HAVE_ARCHIVE_DB if (have_archive_db == SHOW_OPTION_YES) error|= archive_db_end(); +#endif +#ifdef HAVE_CSV_DB + if (have_csv_db == SHOW_OPTION_YES) + error|= tina_end(); #endif if (ha_finish_errors()) error= 1;