mirror of
https://github.com/MariaDB/server.git
synced 2025-01-30 18:41:56 +01:00
2c5f3bbe78
Problem: ======= - innodb.log_file_name fails if it executes after innodb.lock_insert_into_empty in few cases. innodb.lock_insert_into_empty test case failed to cleanup the table t2. Rollback of create..select fails to remove the table when it fails to acquire the innodb statistics table. This leads to rename table in log_file_name test case fails. Solution: ======== - Cleanup the table t2 explictly after resetting innodb_lock_wait_timeout variable in innodb.lock_insert_into_empty test case.
62 lines
1.8 KiB
Text
62 lines
1.8 KiB
Text
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
|
|
CREATE TABLE t2 (a INT PRIMARY KEY) ENGINE=InnoDB;
|
|
INSERT INTO t1 VALUES(0);
|
|
BEGIN;
|
|
DELETE FROM t1;
|
|
INSERT INTO t2 VALUES(1),(1);
|
|
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
|
BEGIN;
|
|
SELECT * FROM t2 LOCK IN SHARE MODE;
|
|
a
|
|
connect con1,localhost,root,,;
|
|
SET innodb_lock_wait_timeout=0;
|
|
INSERT INTO t2 VALUES(2);
|
|
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
|
connection default;
|
|
ROLLBACK;
|
|
connection con1;
|
|
INSERT INTO t2 VALUES(3);
|
|
COMMIT;
|
|
disconnect con1;
|
|
connection default;
|
|
SELECT * FROM t1;
|
|
a
|
|
SELECT * FROM t2;
|
|
a
|
|
3
|
|
DROP TABLE t1, t2;
|
|
#
|
|
# MDEV-24700 Assertion "lock not found"==0 in lock_table_x_unlock()
|
|
#
|
|
SET FOREIGN_KEY_CHECKS=OFF;
|
|
CREATE TABLE t1 (id INT PRIMARY KEY, f INT REFERENCES nonexistent(x))
|
|
ENGINE=InnoDB;
|
|
SET FOREIGN_KEY_CHECKS=ON;
|
|
BEGIN;
|
|
INSERT IGNORE INTO t1 VALUES (1,11);
|
|
Warnings:
|
|
Warning 1452 Cannot add or update a child row: a foreign key constraint fails (`test`.`t1`, CONSTRAINT `t1_ibfk_1` FOREIGN KEY (`f`) REFERENCES `nonexistent` (`x`))
|
|
REPLACE INTO t1 VALUES (1,12);
|
|
ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test`.`t1`, CONSTRAINT `t1_ibfk_1` FOREIGN KEY (`f`) REFERENCES `nonexistent` (`x`))
|
|
COMMIT;
|
|
DROP TABLE t1;
|
|
#
|
|
# MDEV-25942 Assertion failed in trx_t::drop_table()
|
|
#
|
|
CREATE TABLE t1 (k INT PRIMARY KEY) ENGINE=InnoDB;
|
|
INSERT INTO t1 SET k=1;
|
|
START TRANSACTION;
|
|
INSERT INTO t1 SET k=2;
|
|
SELECT count(*) > 0 FROM mysql.innodb_index_stats lock in share mode;
|
|
count(*) > 0
|
|
1
|
|
connect con1,localhost,root,,test;
|
|
SET innodb_lock_wait_timeout=0;
|
|
CREATE TABLE t2 (pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=InnoDB
|
|
AS SELECT k FROM t1;
|
|
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
|
disconnect con1;
|
|
connection default;
|
|
SET innodb_lock_wait_timeout=default;
|
|
DROP TABLE t1;
|
|
DROP TABLE IF EXISTS t2;
|