summaryrefslogtreecommitdiff
path: root/mysql-test/suite/innodb_fts/t/innodb-fts-ddl.test
Commit message (Collapse)AuthorAgeFilesLines
* MDEV-25004 FTS tests for System Versioningbb-10.3-midenok-MDEV-25004Aleksey Midenkov2021-12-181-0/+1
| | | | | | | | | | | | MTR combination 'vers' for debug build sets sysvers_force and sysvers_hide. sysvers_force makes every created table system-versioned, sysvers_hide hides WITH SYSTEM VERSIONING for SHOW CREATE. To use 'vers' combination one must include maybe_versioning.inc into his test. Removed innodb-fts-stopword.test as it duplicates stopword.test
* Merge 10.2 into 10.3Marko Mäkelä2021-05-241-0/+19
|\
| * MDEV-25721 Double free of table when inplace alterThirunarayanan Balathandayuthapani2021-05-231-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | FTS add index fails Problem: ======== InnoDB double frees the table if auxiliary fts table creation fails and fails to set the dict operation for the transaction. It leads to failure while dropping newly added index. Solution: ========= InnoDB should avoid double freeing and set the dictionary operation of transaction in fts_create_common_tables()
* | Merge 10.2 into 10.3Marko Mäkelä2021-01-191-0/+43
|\ \ | |/
| * MDEV-21478 Inplace ALTER fails to report error when FTS_DOC_IDThirunarayanan Balathandayuthapani2021-01-111-0/+41
| | | | | | | | | | | | | | | | | | | | | | with wrong data type is added Inplace alter fails to report error when fts_doc_id column with wrong data type is added. prepare_inplace_alter_table_dict(): Should check whether the column is fts_doc_id. It should be of bigint type, should accept non null data type and it should be in capital letters.
* | Merge 10.2 into 10.3Marko Mäkelä2020-07-021-0/+8
|\ \ | |/
| * MDEV-22811 DDL fails to drop and re-create FTS indexThirunarayanan Balathandayuthapani2020-06-181-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: ======== - InnoDB clears the fts resource when last FTS index is being dropped if the table has user defined FTS_DOC_ID. While creating the new fts index, InnoDB expects to have FTS resources. Fix: === fts_drop_index(): Removed the fts resource clear. fts_clear_all(): Clear the fts resource when there are no new fts index to be added. commit_cache_norebuild(), row_merge_drop_indexes(): Tries to call fts resource after removing associated fts index from table object
* | MDEV-18152 Assertion 'num_fts_index <= 1' failedMarko Mäkelä2019-01-181-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | InnoDB does not allow creating multiple FULLTEXT INDEX in ALGORITHM=INPLACE. This constraint was not being properly enforced after MariaDB started to support ALGORITHM=INSTANT and instant ADD COLUMN. As a side effect of this bug, we again allow ALGORITHM=INPLACE to rebuild a table when one FULLTEXT INDEX survives. Also, we are returning a more accurate reason for refusing LOCK=NONE. innobase_fulltext_exist(): Return the number of fulltext indexes. ha_innobase::check_if_supported_inplace_alter(): If the table needs to be rebuilt, refuse the operation if multiple fulltext indexes would remain.
* | MDEV-13134 Introduce ALTER TABLE attributes ALGORITHM=NOCOPY and ↵Thirunarayanan Balathandayuthapani2018-05-071-11/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ALGORITHM=INSTANT Introduced new alter algorithm type called NOCOPY & INSTANT for inplace alter operation. NOCOPY - Algorithm refuses any alter operation that would rebuild the clustered index. It is a subset of INPLACE algorithm. INSTANT - Algorithm allow any alter operation that would modify only meta data. It is a subset of NOCOPY algorithm. Introduce new variable called alter_algorithm. The values are DEFAULT(0), COPY(1), INPLACE(2), NOCOPY(3), INSTANT(4) Message to deprecate old_alter_table variable and make it alias for alter_algorithm variable. alter_algorithm variable for slave is always set to default.
* | MDEV-15828 Server crash or assertion `num_fts_index <= 1' failure up on ↵Thirunarayanan Balathandayuthapani2018-04-181-0/+7
| | | | | | | | | | | | | | | | ALTER TABLE adding two fulltext indexes - Inplace alter shouldn't support if the number of newly added fts index exceeds 1 even though the table undergoes rebuild. It is a regression of MDEV-14016
* | MDEV-14655 Assertion `!fts_index' failed in prepare_inplace_alter_table_dictMarko Mäkelä2018-01-151-6/+7
|/ | | | | | | | | | | | | | | | | | | MariaDB inherits the MySQL limitation that ALGORITHM=INPLACE cannot create more than one FULLTEXT INDEX at a time. As part of the MDEV-11369 Instant ADD COLUMN refactoring, MariaDB 10.3.2 accidentally stopped enforcing the restriction. Actually, it is a bug in MySQL 5.6 and MariaDB 10.0 that an ALTER TABLE statement with multiple ADD FULLTEXT INDEX but without explicit ALGORITHM=INPLACE would return in an error message, rather than executing the operation with ALGORITHM=COPY. ha_innobase::check_if_supported_inplace_alter(): Enforce the restriction on multiple FULLTEXT INDEX. prepare_inplace_alter_table_dict(): Replace some code with debug assertions. A "goto error_handled" at this point would result in another error, because the reference count of ctx->new_table would be 0.
* Innodb full text search tests.unknown2013-09-241-0/+272