mirror of
https://github.com/MariaDB/server.git
synced 2025-01-30 18:41:56 +01:00
7668a79a88
This is a partial port of my patch in MySQL 8.0. In MySQL 8.0, all InnoDB references to DBUG_OFF were replaced with UNIV_DEBUG. We will not do that in MariaDB. InnoDB used two independent compile-time flags that distinguish debug and non-debug builds, which is confusing. Also, make ut_ad() and alias of DBUG_ASSERT().
47 lines
1.3 KiB
Text
47 lines
1.3 KiB
Text
--source include/have_innodb.inc
|
|
#
|
|
# http://bugs.mysql.com/53046
|
|
# dict_update_statistics_low can still be run concurrently on same table
|
|
#
|
|
# This is a symbolic test, it would not fail if the bug is present.
|
|
# Rather those SQL commands have been used during manual testing under
|
|
# innodb_sync_debug to test all changed codepaths for locking
|
|
# correctness.
|
|
#
|
|
|
|
CREATE TABLE bug53046_1 (c1 INT PRIMARY KEY) ENGINE=INNODB;
|
|
CREATE TABLE bug53046_2 (c2 INT PRIMARY KEY,
|
|
FOREIGN KEY (c2) REFERENCES bug53046_1(c1)
|
|
ON UPDATE CASCADE ON DELETE CASCADE) ENGINE=INNODB;
|
|
|
|
INSERT INTO bug53046_1 VALUES (1);
|
|
let $i = 5;
|
|
while ($i) {
|
|
eval INSERT INTO bug53046_1 SELECT c1+(SELECT MAX(c1) FROM bug53046_1)
|
|
FROM bug53046_1;
|
|
dec $i;
|
|
}
|
|
|
|
INSERT INTO bug53046_2 VALUES (1), (2);
|
|
|
|
# CREATE TABLE innodb_table_monitor (a int) ENGINE=INNODB;
|
|
# wait more than 1 minute and observe the mysqld output
|
|
# DROP TABLE innodb_table_monitor;
|
|
|
|
ANALYZE TABLE bug53046_1;
|
|
|
|
# this prints create time and other nondeterministic data
|
|
-- disable_result_log
|
|
SHOW TABLE STATUS LIKE 'bug53046_1';
|
|
-- enable_result_log
|
|
|
|
UPDATE bug53046_1 SET c1 = c1 - 1;
|
|
|
|
DELETE FROM bug53046_1;
|
|
|
|
INSERT INTO bug53046_1 VALUES (1);
|
|
INSERT INTO bug53046_2 VALUES (1);
|
|
TRUNCATE TABLE bug53046_2;
|
|
|
|
DROP TABLE bug53046_2;
|
|
DROP TABLE bug53046_1;
|