summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/examples/ha_tina.cc10
-rw-r--r--sql/examples/ha_tina.h3
-rw-r--r--sql/handler.cc4
3 files changed, 17 insertions, 0 deletions
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
@@ -599,6 +599,10 @@ int ha_panic(enum ha_panic_function flag)
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;
return error;