diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2022-09-19 11:46:25 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2022-09-19 11:46:25 +0300 |
commit | fed0d85de753172e48623b87652af03935d38862 (patch) | |
tree | 8fab941d16eb4af5428bb3a2b5f697bdc46715f2 /mysql-test/suite/innodb/r | |
parent | 3c8674edcc99605aa4634145771b2195c3f4f007 (diff) | |
download | mariadb-git-fed0d85de753172e48623b87652af03935d38862.tar.gz |
MDEV-29559 Recovery of INSERT_HEAP_DYNAMIC into secondary index fails
log_phys_t::apply(): When parsing an INSERT_HEAP_DYNAMIC record,
allow ll==rlen to hold for the last part. A secondary index record
may inherit all preceding bytes from the infimum pseudo-record.
For INSERT_HEAP_REDUNDANT, some header bytes will always be present
because the header will never be copied from the page infimum.
We will tolerate ll==rlen also in that case to be consistent with
the parsing of INSERT_HEAP_DYNAMIC.
Diffstat (limited to 'mysql-test/suite/innodb/r')
-rw-r--r-- | mysql-test/suite/innodb/r/recovery_shutdown.result | 31 |
1 files changed, 12 insertions, 19 deletions
diff --git a/mysql-test/suite/innodb/r/recovery_shutdown.result b/mysql-test/suite/innodb/r/recovery_shutdown.result index dc785d580fe..6f7ca6e0d1d 100644 --- a/mysql-test/suite/innodb/r/recovery_shutdown.result +++ b/mysql-test/suite/innodb/r/recovery_shutdown.result @@ -4,13 +4,10 @@ call mtr.add_suppression("Found 1 prepared XA transactions"); # MDEV-13797 InnoDB may hang if shutdown is initiated soon after startup # while rolling back recovered incomplete transactions # -CREATE TABLE t (a INT) ENGINE=InnoDB; -BEGIN; -COMMIT; connect con$c,localhost,root,,; CREATE TABLE t8 (a SERIAL, b INT UNIQUE, c INT UNIQUE) ENGINE=InnoDB; XA START 'x'; -INSERT INTO t8 (a) SELECT NULL FROM t; +INSERT INTO t8 (a) SELECT NULL FROM seq_1_to_100; UPDATE t8 SET a=a+100, b=a; DELETE FROM t8; XA END 'x'; @@ -18,58 +15,54 @@ XA PREPARE 'x'; connect con$c,localhost,root,,; CREATE TABLE t7 (a SERIAL, b INT UNIQUE, c INT UNIQUE) ENGINE=InnoDB; BEGIN; -INSERT INTO t7 (a) SELECT NULL FROM t; +INSERT INTO t7 (a) SELECT NULL FROM seq_1_to_100; UPDATE t7 SET a=a+100, b=a; DELETE FROM t7; connect con$c,localhost,root,,; CREATE TABLE t6 (a SERIAL, b INT UNIQUE, c INT UNIQUE) ENGINE=InnoDB; BEGIN; -INSERT INTO t6 (a) SELECT NULL FROM t; +INSERT INTO t6 (a) SELECT NULL FROM seq_1_to_100; UPDATE t6 SET a=a+100, b=a; DELETE FROM t6; connect con$c,localhost,root,,; CREATE TABLE t5 (a SERIAL, b INT UNIQUE, c INT UNIQUE) ENGINE=InnoDB; BEGIN; -INSERT INTO t5 (a) SELECT NULL FROM t; +INSERT INTO t5 (a) SELECT NULL FROM seq_1_to_100; UPDATE t5 SET a=a+100, b=a; DELETE FROM t5; connect con$c,localhost,root,,; CREATE TABLE t4 (a SERIAL, b INT UNIQUE, c INT UNIQUE) ENGINE=InnoDB; BEGIN; -INSERT INTO t4 (a) SELECT NULL FROM t; +INSERT INTO t4 (a) SELECT NULL FROM seq_1_to_100; UPDATE t4 SET a=a+100, b=a; DELETE FROM t4; connect con$c,localhost,root,,; CREATE TABLE t3 (a SERIAL, b INT UNIQUE, c INT UNIQUE) ENGINE=InnoDB; BEGIN; -INSERT INTO t3 (a) SELECT NULL FROM t; +INSERT INTO t3 (a) SELECT NULL FROM seq_1_to_100; UPDATE t3 SET a=a+100, b=a; DELETE FROM t3; connect con$c,localhost,root,,; CREATE TABLE t2 (a SERIAL, b INT UNIQUE, c INT UNIQUE) ENGINE=InnoDB; BEGIN; -INSERT INTO t2 (a) SELECT NULL FROM t; +INSERT INTO t2 (a) SELECT NULL FROM seq_1_to_100; UPDATE t2 SET a=a+100, b=a; DELETE FROM t2; connect con$c,localhost,root,,; CREATE TABLE t1 (a SERIAL, b INT UNIQUE, c INT UNIQUE) ENGINE=InnoDB; BEGIN; -INSERT INTO t1 (a) SELECT NULL FROM t; +INSERT INTO t1 (a) SELECT NULL FROM seq_1_to_100; UPDATE t1 SET a=a+100, b=a; DELETE FROM t1; -INSERT INTO t1(a) SELECT NULL FROM t; -INSERT INTO t1(a) SELECT NULL FROM t1; -INSERT INTO t1(a) SELECT NULL FROM t1; -INSERT INTO t1(a) SELECT NULL FROM t1; -INSERT INTO t1(a) SELECT NULL FROM t1; +INSERT INTO t1(a) SELECT NULL FROM seq_1_to_1600; connection default; SET GLOBAL innodb_flush_log_at_trx_commit=1; -CREATE TABLE u(a SERIAL) ENGINE=INNODB; +CREATE TABLE MDEV_29559 (a TINYINT UNSIGNED PRIMARY KEY, KEY(a)) ENGINE=InnoDB; +INSERT INTO MDEV_29559 VALUES (0x69); FLUSH TABLES; # restart -# restart XA RECOVER; formatID gtrid_length bqual_length data 1 1 0 x # restart -DROP TABLE t,u; +DROP TABLE MDEV_29559; |