mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge 10.1 into 10.2
This commit is contained in:
@ -420,6 +420,41 @@ connection default;
|
||||
XA END 'xid';
|
||||
XA ROLLBACK 'xid';
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (pk INT PRIMARY KEY,
|
||||
f1 VARCHAR(10), f2 VARCHAR(10),
|
||||
f3 VARCHAR(10), f4 VARCHAR(10),
|
||||
f5 VARCHAR(10), f6 VARCHAR(10),
|
||||
f7 VARCHAR(10), f8 VARCHAR(10),
|
||||
INDEX(f1), INDEX(f2), INDEX(f3), INDEX(f4),
|
||||
INDEX(f5), INDEX(f6), INDEX(f7), INDEX(f8)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (1, 'mariadb', 'mariadb', 'mariadb', 'mariadb',
|
||||
'mariadb', 'mariadb', 'mariadb', 'mariadb'),
|
||||
(2, 'mariadb', 'mariadb', 'mariadb', 'mariadb',
|
||||
'mariadb', 'mariadb', 'mariadb', 'mariadb'),
|
||||
(3, 'innodb', 'innodb', 'innodb', 'innodb',
|
||||
'innodb', 'innodb', 'innodb', 'innodb');
|
||||
ALTER TABLE t1 ADD FOREIGN KEY (f1) REFERENCES t1 (f2) ON DELETE SET NULL;
|
||||
START TRANSACTION;
|
||||
DELETE FROM t1 where f1='mariadb';
|
||||
SELECT * FROM t1;
|
||||
pk f1 f2 f3 f4 f5 f6 f7 f8
|
||||
2 NULL mariadb mariadb mariadb mariadb mariadb mariadb mariadb
|
||||
3 innodb innodb innodb innodb innodb innodb innodb innodb
|
||||
ROLLBACK;
|
||||
ALTER TABLE t1 ADD FOREIGN KEY (f3) REFERENCES t1 (f4) ON DELETE CASCADE;
|
||||
START TRANSACTION;
|
||||
DELETE FROM t1 where f3='mariadb';
|
||||
SELECT * FROM t1;
|
||||
pk f1 f2 f3 f4 f5 f6 f7 f8
|
||||
3 innodb innodb innodb innodb innodb innodb innodb innodb
|
||||
ROLLBACK;
|
||||
ALTER TABLE t1 ADD FOREIGN KEY (f5) REFERENCES t1 (f6) ON UPDATE SET NULL;
|
||||
UPDATE t1 SET f6='update';
|
||||
ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t1`, CONSTRAINT `t1_ibfk_3` FOREIGN KEY (`f5`) REFERENCES `t1` (`f6`) ON UPDATE SET NULL)
|
||||
ALTER TABLE t1 ADD FOREIGN KEY (f7) REFERENCES t1 (f8) ON UPDATE CASCADE;
|
||||
UPDATE t1 SET f6='cascade';
|
||||
ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t1`, CONSTRAINT `t1_ibfk_3` FOREIGN KEY (`f5`) REFERENCES `t1` (`f6`) ON UPDATE SET NULL)
|
||||
DROP TABLE t1;
|
||||
# Start of 10.2 tests
|
||||
#
|
||||
# MDEV-13246 Stale rows despite ON DELETE CASCADE constraint
|
||||
|
@ -47,3 +47,5 @@ innodb_stats_drop_locked
|
||||
innodb_stats_drop_locked
|
||||
innodb_stats_drop_locked
|
||||
innodb_stats_drop_locked
|
||||
DELETE FROM mysql.innodb_index_stats WHERE database_name='test' AND table_name='innodb_stats_drop_locked';
|
||||
DELETE FROM mysql.innodb_table_stats WHERE database_name='test' AND table_name='innodb_stats_drop_locked';
|
||||
|
@ -421,6 +421,41 @@ ALTER TABLE t1 ADD FOREIGN KEY f (a) REFERENCES t1 (pk), LOCK=EXCLUSIVE;# Cleanu
|
||||
XA END 'xid';
|
||||
XA ROLLBACK 'xid';
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (pk INT PRIMARY KEY,
|
||||
f1 VARCHAR(10), f2 VARCHAR(10),
|
||||
f3 VARCHAR(10), f4 VARCHAR(10),
|
||||
f5 VARCHAR(10), f6 VARCHAR(10),
|
||||
f7 VARCHAR(10), f8 VARCHAR(10),
|
||||
INDEX(f1), INDEX(f2), INDEX(f3), INDEX(f4),
|
||||
INDEX(f5), INDEX(f6), INDEX(f7), INDEX(f8)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (1, 'mariadb', 'mariadb', 'mariadb', 'mariadb',
|
||||
'mariadb', 'mariadb', 'mariadb', 'mariadb'),
|
||||
(2, 'mariadb', 'mariadb', 'mariadb', 'mariadb',
|
||||
'mariadb', 'mariadb', 'mariadb', 'mariadb'),
|
||||
(3, 'innodb', 'innodb', 'innodb', 'innodb',
|
||||
'innodb', 'innodb', 'innodb', 'innodb');
|
||||
ALTER TABLE t1 ADD FOREIGN KEY (f1) REFERENCES t1 (f2) ON DELETE SET NULL;
|
||||
START TRANSACTION;
|
||||
DELETE FROM t1 where f1='mariadb';
|
||||
SELECT * FROM t1;
|
||||
ROLLBACK;
|
||||
|
||||
ALTER TABLE t1 ADD FOREIGN KEY (f3) REFERENCES t1 (f4) ON DELETE CASCADE;
|
||||
|
||||
START TRANSACTION;
|
||||
DELETE FROM t1 where f3='mariadb';
|
||||
SELECT * FROM t1;
|
||||
ROLLBACK;
|
||||
|
||||
ALTER TABLE t1 ADD FOREIGN KEY (f5) REFERENCES t1 (f6) ON UPDATE SET NULL;
|
||||
--error ER_ROW_IS_REFERENCED_2
|
||||
UPDATE t1 SET f6='update';
|
||||
|
||||
ALTER TABLE t1 ADD FOREIGN KEY (f7) REFERENCES t1 (f8) ON UPDATE CASCADE;
|
||||
--error ER_ROW_IS_REFERENCED_2
|
||||
UPDATE t1 SET f6='cascade';
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of 10.1 tests
|
||||
#
|
||||
|
@ -56,6 +56,8 @@ WHERE table_name='innodb_stats_drop_locked';
|
||||
SELECT table_name FROM mysql.innodb_index_stats
|
||||
WHERE table_name='innodb_stats_drop_locked';
|
||||
|
||||
DELETE FROM mysql.innodb_index_stats WHERE database_name='test' AND table_name='innodb_stats_drop_locked';
|
||||
DELETE FROM mysql.innodb_table_stats WHERE database_name='test' AND table_name='innodb_stats_drop_locked';
|
||||
--disable_query_log
|
||||
call mtr.add_suppression("Unable to delete statistics for table test.innodb_stats_drop_locked: Lock wait timeout. They can be deleted later using DELETE FROM mysql.innodb_index_stats WHERE database_name");
|
||||
--enable_query_log
|
||||
|
Reference in New Issue
Block a user