summaryrefslogtreecommitdiff
path: root/storage/xtradb/row
diff options
context:
space:
mode:
Diffstat (limited to 'storage/xtradb/row')
-rw-r--r--storage/xtradb/row/row0merge.cc2
-rw-r--r--storage/xtradb/row/row0mysql.cc8
2 files changed, 8 insertions, 2 deletions
diff --git a/storage/xtradb/row/row0merge.cc b/storage/xtradb/row/row0merge.cc
index f5967ede3e7..3d7a5d2ef5d 100644
--- a/storage/xtradb/row/row0merge.cc
+++ b/storage/xtradb/row/row0merge.cc
@@ -2177,7 +2177,7 @@ wait_again:
/* Sync fts cache for other fts indexes to keep all
fts indexes consistent in sync_doc_id. */
err = fts_sync_table(const_cast<dict_table_t*>(new_table),
- false, true);
+ false, true, false);
if (err == DB_SUCCESS) {
fts_update_next_doc_id(
diff --git a/storage/xtradb/row/row0mysql.cc b/storage/xtradb/row/row0mysql.cc
index ba2e0047fe9..059254a3c49 100644
--- a/storage/xtradb/row/row0mysql.cc
+++ b/storage/xtradb/row/row0mysql.cc
@@ -3293,7 +3293,7 @@ fil_wait_crypt_bg_threads(
uint last = start;
if (table->space != 0) {
- fil_space_crypt_mark_space_closing(table->space);
+ fil_space_crypt_mark_space_closing(table->space, table->crypt_data);
}
while (table->n_ref_count > 0) {
@@ -4225,6 +4225,12 @@ row_drop_table_for_mysql(
rw_lock_x_unlock(dict_index_get_lock(index));
}
+ /* If table has not yet have crypt_data, try to read it to
+ make freeing the table easier. */
+ if (!table->crypt_data) {
+ table->crypt_data = fil_space_get_crypt_data(table->space);
+ }
+
/* We use the private SQL parser of Innobase to generate the
query graphs needed in deleting the dictionary data from system
tables in Innobase. Deleting a row from SYS_INDEXES table also