Browse Source

MDEV-24403 Segfault on CREATE TABLE with explicit FTS_DOC_ID_INDEX by multiple fields

Ignore table->fts freed previously by create_table_info_t::create_table().
10.2-MDEV-22110-dont-log-unmodified-pages
Aleksey Midenkov 5 years ago
parent
commit
775aa6f08a
  1. 10
      mysql-test/suite/innodb_fts/r/create.result
  2. 11
      mysql-test/suite/innodb_fts/t/create.test
  3. 2
      storage/innobase/fts/fts0fts.cc

10
mysql-test/suite/innodb_fts/r/create.result

@ -182,3 +182,13 @@ Table Op Msg_type Msg_text
test.t1 optimize status OK
DROP TABLE t1;
SET GLOBAL innodb_optimize_fulltext_only= @optimize_fulltext.save;
#
# MDEV-24403 Segfault on CREATE TABLE with explicit FTS_DOC_ID_INDEX by multiple fields
#
create table t1 (
f1 int, f2 text,
FTS_DOC_ID bigint unsigned not null,
unique key FTS_DOC_ID_INDEX(FTS_DOC_ID, f1),
fulltext (f2))
engine=innodb;
ERROR 42000: Incorrect index name 'FTS_DOC_ID_INDEX'

11
mysql-test/suite/innodb_fts/t/create.test

@ -106,3 +106,14 @@ SET GLOBAL innodb_optimize_fulltext_only= 1;
OPTIMIZE TABLE t1;
DROP TABLE t1;
SET GLOBAL innodb_optimize_fulltext_only= @optimize_fulltext.save;
--echo #
--echo # MDEV-24403 Segfault on CREATE TABLE with explicit FTS_DOC_ID_INDEX by multiple fields
--echo #
--error ER_WRONG_NAME_FOR_INDEX
create table t1 (
f1 int, f2 text,
FTS_DOC_ID bigint unsigned not null,
unique key FTS_DOC_ID_INDEX(FTS_DOC_ID, f1),
fulltext (f2))
engine=innodb;

2
storage/innobase/fts/fts0fts.cc

@ -1709,7 +1709,7 @@ fts_drop_tables(
error = fts_drop_common_tables(trx, &fts_table);
if (error == DB_SUCCESS) {
if (error == DB_SUCCESS && table->fts) {
error = fts_drop_all_index_tables(trx, table->fts);
}

Loading…
Cancel
Save