mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-22358 Assertion srv_undo_sources || ... in row_prebuilt_free()
row_prebuilt_free(): Do not attempt to drop orphan indexes that might have been left behind by a failed ADD UNIQUE INDEX. This avoids the execution of unwanted transactions during shutdown.
This commit is contained in:
@ -740,6 +740,11 @@ FULLTEXT(f2),
|
||||
FOREIGN KEY(f1) REFERENCES mdev20987_1(f1))ENGINE=InnoDB;
|
||||
INSERT INTO mdev20987_1 VALUES(1);
|
||||
INSERT INTO mdev20987_2 VALUES(1, 'mariadb');
|
||||
CREATE TABLE mdev22358 (a INT, b TEXT, FULLTEXT KEY ftidx (b)) ENGINE=InnoDB;
|
||||
ALTER TABLE mdev22358 DROP KEY ftidx;
|
||||
INSERT INTO mdev22358 (a) VALUES (2),(2);
|
||||
ALTER TABLE mdev22358 ADD UNIQUE KEY uidx (a), ADD FULLTEXT KEY ftidx (b);
|
||||
ERROR 23000: Duplicate entry '2' for key 'uidx'
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
@ -747,7 +752,7 @@ t2 CREATE TABLE `t2` (
|
||||
PRIMARY KEY (`FTS_DOC_ID`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
DELETE FROM t1 WHERE MATCH(char_column) AGAINST ('bbb');
|
||||
DROP TABLE t1, t2, mdev20987_2, mdev20987_1;
|
||||
DROP TABLE t1, t2, mdev20987_2, mdev20987_1, mdev22358;
|
||||
"----------Test28---------"
|
||||
create table `fts_test`(`a` text,fulltext key(`a`))engine=innodb;
|
||||
set session autocommit=0;
|
||||
|
@ -672,10 +672,16 @@ CREATE TABLE mdev20987_2(f1 INT NOT NULL, f2 CHAR(100),
|
||||
FOREIGN KEY(f1) REFERENCES mdev20987_1(f1))ENGINE=InnoDB;
|
||||
INSERT INTO mdev20987_1 VALUES(1);
|
||||
INSERT INTO mdev20987_2 VALUES(1, 'mariadb');
|
||||
|
||||
CREATE TABLE mdev22358 (a INT, b TEXT, FULLTEXT KEY ftidx (b)) ENGINE=InnoDB;
|
||||
ALTER TABLE mdev22358 DROP KEY ftidx;
|
||||
INSERT INTO mdev22358 (a) VALUES (2),(2);
|
||||
--error ER_DUP_ENTRY
|
||||
ALTER TABLE mdev22358 ADD UNIQUE KEY uidx (a), ADD FULLTEXT KEY ftidx (b);
|
||||
--source include/restart_mysqld.inc
|
||||
SHOW CREATE TABLE t2;
|
||||
DELETE FROM t1 WHERE MATCH(char_column) AGAINST ('bbb');
|
||||
DROP TABLE t1, t2, mdev20987_2, mdev20987_1;
|
||||
DROP TABLE t1, t2, mdev20987_2, mdev20987_1, mdev22358;
|
||||
|
||||
--echo "----------Test28---------"
|
||||
create table `fts_test`(`a` text,fulltext key(`a`))engine=innodb;
|
||||
|
@ -1033,7 +1033,7 @@ row_prebuilt_free(
|
||||
rtr_clean_rtr_info(prebuilt->rtr_info, true);
|
||||
}
|
||||
if (prebuilt->table) {
|
||||
dict_table_close(prebuilt->table, dict_locked, TRUE);
|
||||
dict_table_close(prebuilt->table, dict_locked, FALSE);
|
||||
}
|
||||
|
||||
mem_heap_free(prebuilt->heap);
|
||||
|
Reference in New Issue
Block a user