summaryrefslogtreecommitdiff
path: root/mysql-test/suite/innodb
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2022-09-13 15:46:40 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2022-09-13 15:46:40 +0300
commit68ce0231ad6a16e02db9d67a217a88055b6d01ff (patch)
tree6f95ed40116dc8a2bd9802da344af91e12010130 /mysql-test/suite/innodb
parent4c142433733fc6d0c360fd1a73b785bc2ebf89a9 (diff)
downloadmariadb-git-68ce0231ad6a16e02db9d67a217a88055b6d01ff.tar.gz
MDEV-23801 Assertion failed in btr_pcur_store_position()
btr_lift_page_up(): If the leaf page only contains a hidden metadata record for MDEV-11369 instant ADD COLUMN, convert the table to the canonical format like we are supposed to do whenever the table becomes empty.
Diffstat (limited to 'mysql-test/suite/innodb')
-rw-r--r--mysql-test/suite/innodb/r/instant_alter_bugs.result32
-rw-r--r--mysql-test/suite/innodb/t/instant_alter_bugs.test41
2 files changed, 73 insertions, 0 deletions
diff --git a/mysql-test/suite/innodb/r/instant_alter_bugs.result b/mysql-test/suite/innodb/r/instant_alter_bugs.result
index b75566a4536..e34d6fcec35 100644
--- a/mysql-test/suite/innodb/r/instant_alter_bugs.result
+++ b/mysql-test/suite/innodb/r/instant_alter_bugs.result
@@ -201,4 +201,36 @@ SELECT * FROM t1;
c1 c2 c3
1 0 10
DROP TABLE t1;
+#
+# MDEV-23801 Assertion index->table->instant... failed
+# in btr_pcur_store_position()
+#
+SET @save_frequency = @@GLOBAL.innodb_purge_rseg_truncate_frequency;
+SET GLOBAL innodb_purge_rseg_truncate_frequency = 1;
+CREATE TABLE t (
+pk int auto_increment,
+c01 char(255) not null default repeat('a',255),
+c02 char(255) default repeat('a',255),
+c03 char(255) default repeat('a',255),
+c04 char(255) default repeat('a',255),
+c05 char(255) not null default repeat('a',255),
+c06 char(255) default repeat('a',255),
+c07 char(255) default repeat('a',255),
+c08 char(255) not null default repeat('a',255),
+c09 char(255) default repeat('a',255),
+c10 char(255) default repeat('a',255),
+c11 char(255) default repeat('a',255),
+c12 char(255) not null default repeat('a',255),
+primary key (pk)
+) ENGINE=InnoDB CHARACTER SET ucs2;
+INSERT INTO t () VALUES ();
+ALTER TABLE t ADD c INT;
+BEGIN;
+INSERT INTO t () VALUES (),();
+ROLLBACK;
+DELETE FROM t;
+InnoDB 0 transactions not purged
+SET GLOBAL innodb_purge_rseg_truncate_frequency = @save_frequency;
+CREATE TABLE tt ENGINE=InnoDB AS SELECT c FROM t;
+DROP TABLE t, tt;
# End of 10.3 tests
diff --git a/mysql-test/suite/innodb/t/instant_alter_bugs.test b/mysql-test/suite/innodb/t/instant_alter_bugs.test
index a7ccefb19af..47689a6006c 100644
--- a/mysql-test/suite/innodb/t/instant_alter_bugs.test
+++ b/mysql-test/suite/innodb/t/instant_alter_bugs.test
@@ -204,4 +204,45 @@ ALTER TABLE t1 IMPORT TABLESPACE;
SHOW CREATE TABLE t1;
SELECT * FROM t1;
DROP TABLE t1;
+
+
+--echo #
+--echo # MDEV-23801 Assertion index->table->instant... failed
+--echo # in btr_pcur_store_position()
+--echo #
+
+SET @save_frequency = @@GLOBAL.innodb_purge_rseg_truncate_frequency;
+SET GLOBAL innodb_purge_rseg_truncate_frequency = 1;
+
+CREATE TABLE t (
+ pk int auto_increment,
+ c01 char(255) not null default repeat('a',255),
+ c02 char(255) default repeat('a',255),
+ c03 char(255) default repeat('a',255),
+ c04 char(255) default repeat('a',255),
+ c05 char(255) not null default repeat('a',255),
+ c06 char(255) default repeat('a',255),
+ c07 char(255) default repeat('a',255),
+ c08 char(255) not null default repeat('a',255),
+ c09 char(255) default repeat('a',255),
+ c10 char(255) default repeat('a',255),
+ c11 char(255) default repeat('a',255),
+ c12 char(255) not null default repeat('a',255),
+ primary key (pk)
+) ENGINE=InnoDB CHARACTER SET ucs2;
+
+INSERT INTO t () VALUES ();
+ALTER TABLE t ADD c INT;
+
+BEGIN;
+INSERT INTO t () VALUES (),();
+ROLLBACK;
+DELETE FROM t;
+
+--source include/wait_all_purged.inc
+SET GLOBAL innodb_purge_rseg_truncate_frequency = @save_frequency;
+
+CREATE TABLE tt ENGINE=InnoDB AS SELECT c FROM t;
+DROP TABLE t, tt;
+
--echo # End of 10.3 tests