MDEV-17904 Crash in fts_is_sync_needed() after failed ALTER or CREATE TABLE

create_table_def(), ha_innobase::create(): Defer fts_optimize_add_table()
until after the table has been successfully created.
This commit is contained in:
Marko Mäkelä 2018-12-07 12:54:02 +02:00
parent daca7e70d7
commit 12b1ba195c
2 changed files with 8 additions and 8 deletions

View File

@ -9371,10 +9371,6 @@ err_col:
: ER_TABLESPACE_EXISTS, MYF(0), display_name);
}
if (err == DB_SUCCESS && (flags2 & DICT_TF2_FTS)) {
fts_optimize_add_table(table);
}
error_ret:
DBUG_RETURN(convert_error_code_to_mysql(err, flags, thd));
}
@ -10441,6 +10437,10 @@ ha_innobase::create(
trx_free_for_mysql(trx);
DBUG_RETURN(-1);
}
mutex_enter(&dict_sys->mutex);
fts_optimize_add_table(innobase_table);
mutex_exit(&dict_sys->mutex);
}
/* Note: We can't call update_thd() as prebuilt will not be

View File

@ -10143,10 +10143,6 @@ err_col:
: ER_TABLESPACE_EXISTS, MYF(0), display_name);
}
if (err == DB_SUCCESS && (flags2 & DICT_TF2_FTS)) {
fts_optimize_add_table(table);
}
error_ret:
DBUG_RETURN(convert_error_code_to_mysql(err, flags, thd));
}
@ -11218,6 +11214,10 @@ ha_innobase::create(
trx_free_for_mysql(trx);
DBUG_RETURN(-1);
}
mutex_enter(&dict_sys->mutex);
fts_optimize_add_table(innobase_table);
mutex_exit(&dict_sys->mutex);
}
/* Note: We can't call update_thd() as prebuilt will not be