mariadb/storage/innobase/fts
Marko Mäkelä 0d7cf06af5 MDEV-17938 ALTER TABLE reports ER_TABLESPACE_EXISTS after failed ALTER TABLE
There was a race condition in the error handling of ALTER TABLE when
the table contains FULLTEXT INDEX.

During the error handling of an erroneous ALTER TABLE statement,
when InnoDB would drop the internally created tables for FULLTEXT INDEX,
it could happen that one of the hidden tables was being concurrently
accessed by a background thread. Because of this, InnoDB would defer
the drop operation to the background.

However, related to MDEV-13564 backup-safe TRUNCATE TABLE and its
prerequisite MDEV-14585, we had to make the background drop table queue
crash-safe by renaming the table to a temporary name before enqueueing it.
This renaming was introduced in a follow-up of the MDEV-13407 fix.
As part of this rename operation, we were unnecessarily parsing the
current SQL statement, because the same rename operation could also be
executed as part of ALTER TABLE via ha_innobase::rename_table().

If an ALTER TABLE statement was being refused due to incorrectly formed
FOREIGN KEY constraint, then it could happen that the renaming of the hidden
internal tables for FULLTEXT INDEX could also fail, triggering a host of
error log messages, and causing a subsequent table-rebuilding ALTER TABLE
operation to fail due to the tablespace already existing.

innobase_rename_table(), row_rename_table_for_mysql(): Add the parameter
use_fk for suppressing the parsing of FOREIGN KEY constraints. It
will only be passed as use_fk=true by ha_innobase::rename_table(),
which can be invoked as part of ALTER TABLE...ALGORITHM=COPY.
2018-12-10 11:44:39 +02:00
..
fts0ast.cc Remove many redundant #include from InnoDB 2018-11-19 11:42:14 +02:00
fts0blex.cc Merge InnoDB 5.7 from mysql-5.7.9. 2016-09-02 13:22:28 +03:00
fts0blex.l Merge InnoDB 5.7 from mysql-5.7.9. 2016-09-02 13:22:28 +03:00
fts0config.cc InnoDB: Remove ut_snprintf() and the use of my_snprintf(); use snprintf() 2017-11-13 02:11:48 +02:00
fts0fts.cc MDEV-17938 ALTER TABLE reports ER_TABLESPACE_EXISTS after failed ALTER TABLE 2018-12-10 11:44:39 +02:00
fts0opt.cc Remove many redundant #include from InnoDB 2018-11-19 11:42:14 +02:00
fts0pars.cc Merge 10.1 into 10.2 2018-08-02 08:19:57 +03:00
fts0pars.y Merge 10.1 into 10.2 2018-08-02 08:19:57 +03:00
fts0plugin.cc Fix some -Wimplicit-fallthrough warnings in InnoDB 2017-05-19 22:58:59 +03:00
fts0que.cc Remove many redundant #include from InnoDB 2018-11-19 11:42:14 +02:00
fts0sql.cc MDEV-12271 Port MySQL 8.0 Bug#23150562 REMOVE UNIV_MUST_NOT_INLINE AND UNIV_NONINL 2017-03-17 12:42:07 +02:00
fts0tlex.cc Merge InnoDB 5.7 from mysql-5.7.9. 2016-09-02 13:22:28 +03:00
fts0tlex.l Merge InnoDB 5.7 from mysql-5.7.9. 2016-09-02 13:22:28 +03:00
make_parser.sh 5.6.31 2016-06-21 14:21:03 +02:00
Makefile.query move to storage/innobase 2015-05-04 19:17:21 +02:00