mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Merge branch '10.9' into 10.10
This commit is contained in:
@@ -163,10 +163,14 @@ let SEARCH_PATTERN= \[ERROR\] InnoDB: Tablespace [0-9]+ was not found at .*test.
|
||||
-- source include/restart_mysqld.inc
|
||||
|
||||
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
|
||||
--disable_ps2_protocol
|
||||
SELECT * FROM bug16735660;
|
||||
--enable_ps2_protocol
|
||||
|
||||
XA RECOVER;
|
||||
XA ROLLBACK 'x';
|
||||
|
||||
--disable_ps2_protocol
|
||||
SELECT * FROM bug16735660;
|
||||
--enable_ps2_protocol
|
||||
DROP TABLE bug16735660;
|
||||
|
@@ -140,3 +140,13 @@ DROP TABLE t1;
|
||||
CREATE TABLE t1 (c VARCHAR(0), KEY(c)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES ('');
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-19216 Assertion ...SYS_FOREIGN failed in btr_node_ptr_max_size
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (b BINARY(0), v VARBINARY(0), KEY(b), KEY(v)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 SET b='',v='';
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo # End of 10.4 tests
|
||||
|
143
mysql-test/suite/innodb/t/deadlock_on_lock_upgrade.test
Normal file
143
mysql-test/suite/innodb/t/deadlock_on_lock_upgrade.test
Normal file
@@ -0,0 +1,143 @@
|
||||
--echo #
|
||||
--echo # Bug #23755664 DEADLOCK WITH 3 CONCURRENT DELETES BY UNIQUE KEY
|
||||
--echo #
|
||||
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_debug.inc
|
||||
--source include/have_debug_sync.inc
|
||||
--source include/count_sessions.inc
|
||||
|
||||
--connection default
|
||||
# There are various scenarious in which a transaction already holds "half"
|
||||
# of a record lock (for example, a lock on the record but not on the gap)
|
||||
# and wishes to "upgrade it" to a full lock (i.e. on both gap and record).
|
||||
# This is often a cause for a deadlock, if there is another transaction
|
||||
# which is already waiting for the lock being blocked by us:
|
||||
# 1. our granted lock for one half
|
||||
# 2. her waiting lock for the same half
|
||||
# 3. our waiting lock for the whole
|
||||
|
||||
#
|
||||
# SCENARIO 1
|
||||
#
|
||||
# In this scenario, three different threads try to delete the same row,
|
||||
# identified by a secondary index key.
|
||||
# This kind of operation (besides LOCK_IX on a table) requires
|
||||
# an LOCK_REC_NOT_GAP|LOCK_REC|LOCK_X lock on a secondary index
|
||||
# 1. `deleter` is the first to get the required lock
|
||||
# 2. `holder` enqueues a waiting lock
|
||||
# 3. `waiter` enqueues right after `holder`
|
||||
# 4. `deleter` commits, releasing the lock, and granting it to `holder`
|
||||
# 5. `holder` now observes that the row was deleted, so it needs to
|
||||
# "seal the gap", by obtaining a LOCK_X|LOCK_REC, but..
|
||||
# 6. this causes a deadlock between `holder` and `waiter`
|
||||
#
|
||||
# This scenario does not fail if MDEV-10962 is not fixed because of MDEV-30225
|
||||
# fix, as the 'holder' does not "seal the gap" after 'deleter' was committed,
|
||||
# because it was initially sealed, as row_search_mvcc() requests next-key lock
|
||||
# after MDEV-30225 fix in the case when it requested not-gap lock before the
|
||||
# fix.
|
||||
#
|
||||
# But let the scenario be in the tests, because it can fail if MDEV-30225
|
||||
# related code is changed
|
||||
|
||||
CREATE TABLE `t`(
|
||||
`id` INT,
|
||||
`a` INT DEFAULT NULL,
|
||||
PRIMARY KEY(`id`),
|
||||
UNIQUE KEY `u`(`a`)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
INSERT INTO t (`id`,`a`) VALUES
|
||||
(1,1),
|
||||
(2,9999),
|
||||
(3,10000);
|
||||
|
||||
--connect(deleter,localhost,root,,)
|
||||
--connect(holder,localhost,root,,)
|
||||
--connect(waiter,localhost,root,,)
|
||||
|
||||
|
||||
--connection deleter
|
||||
SET DEBUG_SYNC =
|
||||
'lock_sec_rec_read_check_and_lock_has_locked
|
||||
SIGNAL deleter_has_locked
|
||||
WAIT_FOR waiter_has_locked';
|
||||
--send DELETE FROM t WHERE a = 9999
|
||||
|
||||
--connection holder
|
||||
SET DEBUG_SYNC=
|
||||
'now WAIT_FOR deleter_has_locked';
|
||||
SET DEBUG_SYNC=
|
||||
'lock_sec_rec_read_check_and_lock_has_locked SIGNAL holder_has_locked';
|
||||
--send DELETE FROM t WHERE a = 9999
|
||||
|
||||
--connection waiter
|
||||
SET DEBUG_SYNC=
|
||||
'now WAIT_FOR holder_has_locked';
|
||||
SET DEBUG_SYNC=
|
||||
'lock_sec_rec_read_check_and_lock_has_locked SIGNAL waiter_has_locked';
|
||||
--send DELETE FROM t WHERE a = 9999
|
||||
|
||||
--connection deleter
|
||||
--reap
|
||||
|
||||
--connection holder
|
||||
--reap
|
||||
|
||||
--connection waiter
|
||||
--reap
|
||||
|
||||
--connection default
|
||||
|
||||
--disconnect deleter
|
||||
--disconnect holder
|
||||
--disconnect waiter
|
||||
|
||||
DROP TABLE `t`;
|
||||
SET DEBUG_SYNC='reset';
|
||||
|
||||
# SCENARIO 2
|
||||
#
|
||||
# Here, we form a situation in which con1 has LOCK_REC_NOT_GAP on rows 1 and 2
|
||||
# con2 waits for lock on row 1, and then con1 wants to upgrade the lock on row 1,
|
||||
# which might cause a deadlock, unless con1 properly notices that even though the
|
||||
# lock on row 1 can not be upgraded, a separate LOCK_GAP can be obtaied easily.
|
||||
|
||||
CREATE TABLE `t`(
|
||||
`id` INT NOT NULL PRIMARY KEY
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
INSERT INTO t (`id`) VALUES (1), (2);
|
||||
|
||||
--connect(holder,localhost,root,,)
|
||||
--connect(waiter,localhost,root,,)
|
||||
|
||||
--connection holder
|
||||
BEGIN;
|
||||
SELECT id FROM t WHERE id=1 FOR UPDATE;
|
||||
SELECT id FROM t WHERE id=2 FOR UPDATE;
|
||||
|
||||
--connection waiter
|
||||
SET DEBUG_SYNC=
|
||||
'lock_wait_before_suspend SIGNAL waiter_will_wait';
|
||||
--send SELECT id FROM t WHERE id = 1 FOR UPDATE
|
||||
|
||||
--connection holder
|
||||
SET DEBUG_SYNC=
|
||||
'now WAIT_FOR waiter_will_wait';
|
||||
SELECT * FROM t FOR UPDATE;
|
||||
COMMIT;
|
||||
|
||||
--connection waiter
|
||||
--reap
|
||||
|
||||
--connection default
|
||||
|
||||
--disconnect holder
|
||||
--disconnect waiter
|
||||
|
||||
DROP TABLE `t`;
|
||||
SET DEBUG_SYNC='reset';
|
||||
|
||||
--source include/wait_until_count_sessions.inc
|
106
mysql-test/suite/innodb/t/fk_col_alter.test
Normal file
106
mysql-test/suite/innodb/t/fk_col_alter.test
Normal file
@@ -0,0 +1,106 @@
|
||||
--source include/have_innodb.inc
|
||||
--echo #
|
||||
--echo # MDEV-31086 MODIFY COLUMN can break FK constraints, and
|
||||
--echo # lead to unrestorable dumps
|
||||
--echo #
|
||||
CREATE TABLE t1(
|
||||
id SERIAL,
|
||||
msg VARCHAR(100) CHARACTER SET utf8mb3,
|
||||
KEY(msg))ENGINE=InnoDB;
|
||||
|
||||
--error ER_CANT_CREATE_TABLE
|
||||
CREATE TABLE t2(
|
||||
id SERIAL,
|
||||
msg varchar(100) CHARACTER SET utf8mb4,
|
||||
CONSTRAINT fk_t1 FOREIGN KEY (msg) REFERENCES t1 (msg))ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE t2(
|
||||
id SERIAL,
|
||||
msg varchar(100) CHARACTER SET utf8mb3,
|
||||
msg_1 varchar(100) CHARACTER SET utf8mb3,
|
||||
INDEX (msg_1),
|
||||
INDEX (msg),
|
||||
CONSTRAINT fk_t1 FOREIGN KEY (msg) REFERENCES t1 (msg)
|
||||
ON DELETE CASCADE)ENGINE=InnoDB;
|
||||
|
||||
# Changing column used in FK constraint
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
--error ER_FK_COLUMN_CANNOT_CHANGE
|
||||
ALTER TABLE t2 MODIFY COLUMN msg VARCHAR(200) character set utf8mb3, ALGORITHM=COPY;
|
||||
--error ER_FK_COLUMN_CANNOT_CHANGE
|
||||
ALTER TABLE t2 MODIFY COLUMN msg VARCHAR(200) character set utf8mb3, ALGORITHM=INPLACE;
|
||||
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
--error ER_FK_COLUMN_CANNOT_CHANGE
|
||||
ALTER TABLE t2 MODIFY COLUMN msg VARCHAR(200) character set utf8mb3, ALGORITHM=COPY;
|
||||
--error ER_FK_COLUMN_CANNOT_CHANGE
|
||||
ALTER TABLE t2 MODIFY COLUMN msg VARCHAR(400) character set utf8mb3, ALGORITHM=INPLACE;
|
||||
|
||||
# Changing column charset used in FK constraint
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
--error ER_FK_COLUMN_CANNOT_CHANGE
|
||||
ALTER TABLE t2 MODIFY COLUMN msg VARCHAR(100) CHARACTER SET utf8mb4, ALGORITHM=COPY;
|
||||
|
||||
--error ER_FK_COLUMN_CANNOT_CHANGE
|
||||
ALTER TABLE t2 MODIFY COLUMN msg VARCHAR(100) CHARACTER SET utf8mb4, ALGORITHM=INPLACE;
|
||||
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
--error ER_FK_COLUMN_CANNOT_CHANGE
|
||||
ALTER TABLE t2 MODIFY COLUMN msg VARCHAR(100) CHARACTER SET utf8mb4,ALGORITHM=COPY;
|
||||
|
||||
--error ER_FK_COLUMN_CANNOT_CHANGE
|
||||
ALTER TABLE t2 MODIFY COLUMN msg VARCHAR(100) CHARACTER SET utf8mb4,ALGORITHM=INPLACE;
|
||||
|
||||
# Modify the column in the newly added foreign constraint
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
--error ER_CANT_CREATE_TABLE
|
||||
ALTER TABLE t2 ADD CONSTRAINT FOREIGN KEY(msg_1) REFERENCES t1(msg),MODIFY COLUMN msg_1 VARCHAR(100) CHARACTER SET utf8mb4, ALGORITHM=COPY;
|
||||
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
|
||||
ALTER TABLE t2 ADD CONSTRAINT FOREIGN KEY(msg_1) REFERENCES t1(msg),MODIFY COLUMN msg_1 VARCHAR(100) CHARACTER SET utf8mb4, ALGORITHM=INPLACE;
|
||||
|
||||
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
--error ER_CANT_CREATE_TABLE
|
||||
ALTER TABLE t2 ADD CONSTRAINT FOREIGN KEY(msg_1) REFERENCES t1(msg),MODIFY COLUMN msg_1 VARCHAR(100) CHARACTER SET utf8mb4, ALGORITHM=COPY;
|
||||
|
||||
--error ER_FK_COLUMN_CANNOT_CHANGE
|
||||
ALTER TABLE t2 ADD CONSTRAINT FOREIGN KEY(msg_1) REFERENCES t1(msg),MODIFY COLUMN msg_1 VARCHAR(100) CHARACTER SET utf8mb4, ALGORITHM=INPLACE;
|
||||
|
||||
--error ER_FK_COLUMN_CANNOT_CHANGE
|
||||
ALTER TABLE t2 ADD CONSTRAINT FOREIGN KEY(msg_1) REFERENCES t1(msg),MODIFY COLUMN msg_1 VARCHAR(200) CHARACTER SET utf8mb3, ALGORITHM=INPLACE;
|
||||
|
||||
# Change referenced table column
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
# Change referenced column length
|
||||
--error ER_FK_COLUMN_CANNOT_CHANGE_CHILD
|
||||
ALTER TABLE t1 MODIFY msg VARCHAR(200) CHARSET utf8mb3, ALGORITHM=COPY;
|
||||
--error ER_FK_COLUMN_CANNOT_CHANGE_CHILD
|
||||
ALTER TABLE t1 MODIFY msg VARCHAR(200) CHARSET utf8mb3, ALGORITHM=INPLACE;
|
||||
# Change referenced column character set
|
||||
--error ER_FK_COLUMN_CANNOT_CHANGE_CHILD
|
||||
ALTER TABLE t1 MODIFY msg VARCHAR(200) CHARSET utf8mb4, ALGORITHM=COPY;
|
||||
--error ER_FK_COLUMN_CANNOT_CHANGE_CHILD
|
||||
ALTER TABLE t1 MODIFY msg VARCHAR(200) CHARSET utf8mb4, ALGORITHM=INPLACE;
|
||||
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
# Change referenced column length
|
||||
--error ER_FK_COLUMN_CANNOT_CHANGE_CHILD
|
||||
ALTER TABLE t1 MODIFY msg VARCHAR(200) CHARSET utf8mb3, ALGORITHM=COPY;
|
||||
--error ER_FK_COLUMN_CANNOT_CHANGE_CHILD
|
||||
ALTER TABLE t1 MODIFY msg VARCHAR(400) CHARSET utf8mb3, ALGORITHM=INPLACE;
|
||||
|
||||
# Change referenced column character set
|
||||
--error ER_FK_COLUMN_CANNOT_CHANGE_CHILD
|
||||
ALTER TABLE t1 MODIFY msg VARCHAR(200) CHARSET utf8mb4, ALGORITHM=COPY;
|
||||
--error ER_FK_COLUMN_CANNOT_CHANGE_CHILD
|
||||
ALTER TABLE t1 MODIFY msg VARCHAR(200) CHARSET utf8mb4, ALGORITHM=INPLACE;
|
||||
|
||||
# Correct way to change character set in foreign key constraint
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
ALTER TABLE t2 DROP FOREIGN KEY fk_t1, MODIFY msg VARCHAR(200) CHARSET utf8mb4, ALGORITHM=COPY;
|
||||
ALTER TABLE t1 MODIFY msg VARCHAR(200) CHARSET utf8mb4, ALGORITHM=COPY;
|
||||
ALTER TABLE t2 ADD CONSTRAINT FOREIGN KEY (msg) REFERENCES t1(msg), aLGORITHM=INPLACE;
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
|
||||
DROP TABLE t2, t1;
|
@@ -237,9 +237,12 @@ DROP TABLE t3,t1;
|
||||
CREATE TABLE t1 (a INT, UNIQUE(a), KEY(a)) ENGINE=InnoDB;
|
||||
ALTER TABLE t1 ADD FOREIGN KEY (a) REFERENCES t1 (a);
|
||||
SET SESSION FOREIGN_KEY_CHECKS = OFF;
|
||||
--error ER_FK_COLUMN_CANNOT_CHANGE_CHILD
|
||||
ALTER TABLE t1 CHANGE COLUMN a a TIME NOT NULL;
|
||||
ALTER TABLE t1 ADD pk INT NOT NULL AUTO_INCREMENT PRIMARY KEY;
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
|
||||
ALTER TABLE t1 CHANGE COLUMN a b TIME;
|
||||
ALTER TABLE t1 CHANGE COLUMN a b TIME, DROP FOREIGN KEY t1_ibfk_1;
|
||||
SET SESSION FOREIGN_KEY_CHECKS = ON;
|
||||
DROP TABLE t1;
|
||||
|
||||
@@ -434,7 +437,9 @@ end|
|
||||
delimiter ;|
|
||||
flush tables;
|
||||
flush status;
|
||||
--disable_ps2_protocol
|
||||
select foo();
|
||||
--enable_ps2_protocol
|
||||
show status like '%opened_tab%';
|
||||
drop function foo;
|
||||
drop table t2, t1;
|
||||
|
@@ -25,7 +25,9 @@ END //
|
||||
|
||||
DELIMITER ;//
|
||||
|
||||
--disable_ps_protocol
|
||||
SELECT bug56228();
|
||||
--enable_ps2_protocol
|
||||
|
||||
DROP FUNCTION bug56228;
|
||||
DROP TEMPORARY TABLE t2_56228;
|
||||
|
@@ -1626,6 +1626,7 @@ drop table t1;
|
||||
set foreign_key_checks=0;
|
||||
create table t2 (a varchar(10), foreign key (a) references t1(a)) engine = innodb;
|
||||
create table t1(a varchar(10) primary key) engine = innodb;
|
||||
--error ER_FK_COLUMN_CANNOT_CHANGE_CHILD
|
||||
alter table t1 modify column a int;
|
||||
set foreign_key_checks=1;
|
||||
drop table t2,t1;
|
||||
@@ -1635,6 +1636,7 @@ drop table t2,t1;
|
||||
set foreign_key_checks=0;
|
||||
create table t2 (a varchar(10), foreign key (a) references t1(a)) engine = innodb DEFAULT CHARSET=latin1;
|
||||
create table t1(a varchar(10) primary key) engine = innodb DEFAULT CHARSET=latin1;
|
||||
--error ER_FK_COLUMN_CANNOT_CHANGE_CHILD
|
||||
alter table t1 convert to character set utf8;
|
||||
set foreign_key_checks=1;
|
||||
drop table t2,t1;
|
||||
|
@@ -22,7 +22,9 @@ start transaction;
|
||||
update t1 set f2 = 4 where f1 = 1 and f2 is null;
|
||||
|
||||
-- echo (b) Number of rows updated:
|
||||
--disable_ps2_protocol
|
||||
select row_count();
|
||||
--enable_ps2_protocol
|
||||
|
||||
insert into t1 values (3, 1, null);
|
||||
|
||||
@@ -40,7 +42,9 @@ SET SESSION debug_dbug="+d,bug14007649";
|
||||
update t1 set f2 = 6 where f1 = 1 and f2 is null;
|
||||
|
||||
-- echo (a) Number of rows updated:
|
||||
--disable_ps2_protocol
|
||||
select row_count();
|
||||
--enable_ps2_protocol
|
||||
|
||||
-- echo (a) After the update statement is executed.
|
||||
select rowid, f1, f2 from t1;
|
||||
|
@@ -36,13 +36,17 @@ CONNECT (con3,localhost,root,,);
|
||||
--let $shutdown_timeout=0
|
||||
--source include/restart_mysqld.inc
|
||||
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
|
||||
--disable_ps2_protocol
|
||||
SELECT * FROM t;
|
||||
--enable_ps2_protocol
|
||||
COMMIT;
|
||||
|
||||
--source include/restart_mysqld.inc
|
||||
|
||||
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
|
||||
--disable_ps2_protocol
|
||||
SELECT * FROM t;
|
||||
--enable_ps2_protocol
|
||||
COMMIT;
|
||||
--sorted_result
|
||||
XA RECOVER;
|
||||
|
@@ -143,7 +143,9 @@ connection default;
|
||||
let $status=`SHOW ENGINE INNODB STATUS`;
|
||||
|
||||
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
|
||||
--disable_ps2_protocol
|
||||
select * from t2;
|
||||
--enable_ps2_protocol
|
||||
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
|
||||
select * from t2;
|
||||
SET SESSION innodb_lock_wait_timeout=1;
|
||||
|
@@ -1,5 +0,0 @@
|
||||
--innodb-page-size=32K
|
||||
--innodb_buffer_pool_size=32M
|
||||
--skip-innodb-stats-persistent
|
||||
--innodb-sys-tablestats
|
||||
--skip-innodb-read-only-compressed
|
@@ -1,327 +0,0 @@
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_innodb_32k.inc
|
||||
|
||||
# Check page size 32k
|
||||
SELECT @@innodb_page_size;
|
||||
|
||||
SET innodb_strict_mode=ON;
|
||||
|
||||
# FIXED not supported
|
||||
-- error 1005
|
||||
CREATE TABLE tab5(col1 CHAR (255), col2 CHAR (255), col3 CHAR(255),col4 CHAR(255), col5 CHAR(255),
|
||||
col6 CHAR(255), col7 CHAR(255), col8 CHAR(255), col9 CHAR(255),col10 CHAR(255), col11 CHAR(255),
|
||||
col12 CHAR(255), col13 CHAR(255),col14 CHAR(255),col15 CHAR(255),col16 CHAR(255), col17 CHAR(255),
|
||||
col18 CHAR(255),col19 CHAR(255),col20 CHAR(255),col21 CHAR(255),col22 CHAR(255), col23 CHAR(255),
|
||||
col24 CHAR(255),col25 CHAR(255),col26 CHAR(255),col27 CHAR(255),col28 CHAR(255), col29 CHAR(255),
|
||||
col30 CHAR(255),col31 CHAR(255),col32 CHAR(255),col33 CHAR(255),col34 CHAR(255), col35 CHAR(255),
|
||||
col36 CHAR(255),col37 CHAR(255),col38 CHAR(255),col39 CHAR(255),col40 CHAR(255), col41 CHAR(255),
|
||||
col42 CHAR(255),col43 CHAR(255),col44 CHAR(255),col45 CHAR(255),col46 CHAR(255), col47 CHAR(255),
|
||||
col48 CHAR(255),col49 CHAR(255),col50 CHAR(255),col51 CHAR(255),col52 CHAR(255), col53 CHAR(255),
|
||||
col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255), col59 CHAR(255),
|
||||
col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255),col64 CHAR(255), col65 CHAR(255))
|
||||
ENGINE = innodb ROW_FORMAT=FIXED;
|
||||
show warnings;
|
||||
|
||||
-- error 1005
|
||||
CREATE TABLE tab5(col1 CHAR (255), col2 CHAR (255), col3 CHAR(255),col4 CHAR(255), col5 CHAR(255),
|
||||
col6 CHAR(255), col7 CHAR(255), col8 CHAR(255), col9 CHAR(255),col10 CHAR(255), col11 CHAR(255),
|
||||
col12 CHAR(255), col13 CHAR(255),col14 CHAR(255),col15 CHAR(255),col16 CHAR(255), col17 CHAR(255),
|
||||
col18 CHAR(255),col19 CHAR(255),col20 CHAR(255),col21 CHAR(255),col22 CHAR(255), col23 CHAR(255),
|
||||
col24 CHAR(255),col25 CHAR(255),col26 CHAR(255),col27 CHAR(255),col28 CHAR(255), col29 CHAR(255),
|
||||
col30 CHAR(255),col31 CHAR(255),col32 CHAR(255),col33 CHAR(255),col34 CHAR(255), col35 CHAR(255),
|
||||
col36 CHAR(255),col37 CHAR(255),col38 CHAR(255),col39 CHAR(255),col40 CHAR(255), col41 CHAR(255),
|
||||
col42 CHAR(255),col43 CHAR(255),col44 CHAR(255),col45 CHAR(255),col46 CHAR(255), col47 CHAR(255),
|
||||
col48 CHAR(255),col49 CHAR(255),col50 CHAR(255),col51 CHAR(255),col52 CHAR(255), col53 CHAR(255),
|
||||
col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255), col59 CHAR(255),
|
||||
col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255),col64 CHAR(255), col65 CHAR(255))
|
||||
ENGINE = innodb ROW_FORMAT=COMPRESSED;
|
||||
show warnings;
|
||||
|
||||
--disable_warnings
|
||||
SET @@innodb_strict_mode=OFF;
|
||||
SELECT @@innodb_strict_mode;
|
||||
--enable_warnings
|
||||
|
||||
# Check the Warning | 139 | Row size too large (> 16318)
|
||||
--replace_regex /> [0-9]+/> NNNN/
|
||||
CREATE TABLE tab5(col1 CHAR (255), col2 CHAR (255), col3 CHAR(255),col4 CHAR(255), col5 CHAR(255),
|
||||
col6 CHAR(255), col7 CHAR(255), col8 CHAR(255), col9 CHAR(255),col10 CHAR(255), col11 CHAR(255),
|
||||
col12 CHAR(255), col13 CHAR(255),col14 CHAR(255),col15 CHAR(255),col16 CHAR(255), col17 CHAR(255),
|
||||
col18 CHAR(255),col19 CHAR(255),col20 CHAR(255),col21 CHAR(255),col22 CHAR(255), col23 CHAR(255),
|
||||
col24 CHAR(255),col25 CHAR(255),col26 CHAR(255),col27 CHAR(255),col28 CHAR(255), col29 CHAR(255),
|
||||
col30 CHAR(255),col31 CHAR(255),col32 CHAR(255),col33 CHAR(255),col34 CHAR(255), col35 CHAR(255),
|
||||
col36 CHAR(255),col37 CHAR(255),col38 CHAR(255),col39 CHAR(255),col40 CHAR(255), col41 CHAR(255),
|
||||
col42 CHAR(255),col43 CHAR(255),col44 CHAR(255),col45 CHAR(255),col46 CHAR(255), col47 CHAR(255),
|
||||
col48 CHAR(255),col49 CHAR(255),col50 CHAR(255),col51 CHAR(255),col52 CHAR(255), col53 CHAR(255),
|
||||
col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255), col59 CHAR(255),
|
||||
col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255),col64 CHAR(255), col65 CHAR(255))
|
||||
ENGINE = innodb ROW_FORMAT=COMPACT;
|
||||
|
||||
# row size 16353 > 16K
|
||||
--error ER_TOO_BIG_ROWSIZE
|
||||
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),'a',NULL);
|
||||
|
||||
SELECT * FROM tab5;
|
||||
DROP TABLE tab5;
|
||||
|
||||
# Check the Warning | 139 | Row size too large (> 16318)
|
||||
--replace_regex /> [0-9]+/> NNNN/
|
||||
CREATE TABLE tab5(col1 VARCHAR (255), col2 VARCHAR (255), col3 VARCHAR(255),col4 VARCHAR(255), col5 VARCHAR(255),
|
||||
col6 VARCHAR(255), col7 VARCHAR(255), col8 VARCHAR(255), col9 VARCHAR(255),col10 VARCHAR(255), col11 VARCHAR(255),
|
||||
col12 VARCHAR(255), col13 VARCHAR(255),col14 VARCHAR(255),col15 VARCHAR(255),col16 VARCHAR(255), col17 VARCHAR(255),
|
||||
col18 VARCHAR(255),col19 VARCHAR(255),col20 VARCHAR(255),col21 VARCHAR(255),col22 VARCHAR(255), col23 VARCHAR(255),
|
||||
col24 VARCHAR(255),col25 VARCHAR(255),col26 VARCHAR(255),col27 VARCHAR(255),col28 VARCHAR(255), col29 VARCHAR(255),
|
||||
col30 VARCHAR(255),col31 VARCHAR(255),col32 VARCHAR(255),col33 VARCHAR(255),col34 VARCHAR(255), col35 VARCHAR(255),
|
||||
col36 VARCHAR(255),col37 VARCHAR(255),col38 VARCHAR(255),col39 VARCHAR(255),col40 VARCHAR(255), col41 VARCHAR(255),
|
||||
col42 VARCHAR(255),col43 VARCHAR(255),col44 VARCHAR(255),col45 VARCHAR(255),col46 VARCHAR(255), col47 VARCHAR(255),
|
||||
col48 VARCHAR(255),col49 VARCHAR(255),col50 VARCHAR(255),col51 VARCHAR(255),col52 VARCHAR(255), col53 VARCHAR(255),
|
||||
col54 VARCHAR(255),col55 VARCHAR(255),col56 VARCHAR(255),col57 VARCHAR(255),col58 VARCHAR(255), col59 VARCHAR(255),
|
||||
col60 VARCHAR(255),col61 VARCHAR(255),col62 VARCHAR(255),col63 VARCHAR(255),col64 VARCHAR(255), col65 VARCHAR(255))
|
||||
ENGINE = innodb ROW_FORMAT=COMPACT;
|
||||
|
||||
# row size 16318 : expected to fail
|
||||
--error ER_TOO_BIG_ROWSIZE
|
||||
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',156),NULL);
|
||||
|
||||
# row size 16317
|
||||
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',155),NULL);
|
||||
|
||||
SELECT * FROM tab5;
|
||||
DROP TABLE tab5;
|
||||
|
||||
# Check the Warning | 139 | Row size too large (> 16318)
|
||||
--replace_regex /> [0-9]+/> NNNN/
|
||||
CREATE TABLE tab5(col1 CHAR (255), col2 CHAR (255), col3 CHAR(255),col4 CHAR(255), col5 CHAR(255),
|
||||
col6 CHAR(255), col7 CHAR(255), col8 CHAR(255), col9 CHAR(255),col10 CHAR(255), col11 CHAR(255),
|
||||
col12 CHAR(255), col13 CHAR(255),col14 CHAR(255),col15 CHAR(255),col16 CHAR(255), col17 CHAR(255),
|
||||
col18 CHAR(255),col19 CHAR(255),col20 CHAR(255),col21 CHAR(255),col22 CHAR(255), col23 CHAR(255),
|
||||
col24 CHAR(255),col25 CHAR(255),col26 CHAR(255),col27 CHAR(255),col28 CHAR(255), col29 CHAR(255),
|
||||
col30 CHAR(255),col31 CHAR(255),col32 CHAR(255),col33 CHAR(255),col34 CHAR(255), col35 CHAR(255),
|
||||
col36 CHAR(255),col37 CHAR(255),col38 CHAR(255),col39 CHAR(255),col40 CHAR(255), col41 CHAR(255),
|
||||
col42 CHAR(255),col43 CHAR(255),col44 CHAR(255),col45 CHAR(255),col46 CHAR(255), col47 CHAR(255),
|
||||
col48 CHAR(255),col49 CHAR(255),col50 CHAR(255),col51 CHAR(255),col52 CHAR(255), col53 CHAR(255),
|
||||
col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255), col59 CHAR(255),
|
||||
col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255),col64 CHAR(255), col65 CHAR(255))
|
||||
ENGINE = innodb ROW_FORMAT=DYNAMIC;
|
||||
DROP TABLE tab5;
|
||||
|
||||
# Check the Warning | 139 | Row size too large (> 16318)
|
||||
--replace_regex /> [0-9]+/> NNNN/
|
||||
CREATE TABLE tab5(col1 VARCHAR (255), col2 VARCHAR (255), col3 VARCHAR(255),col4 VARCHAR(255), col5 VARCHAR(255),
|
||||
col6 VARCHAR(255), col7 VARCHAR(255), col8 VARCHAR(255), col9 VARCHAR(255),col10 VARCHAR(255), col11 VARCHAR(255),
|
||||
col12 VARCHAR(255), col13 VARCHAR(255),col14 VARCHAR(255),col15 VARCHAR(255),col16 VARCHAR(255), col17 VARCHAR(255),
|
||||
col18 VARCHAR(255),col19 VARCHAR(255),col20 VARCHAR(255),col21 VARCHAR(255),col22 VARCHAR(255), col23 VARCHAR(255),
|
||||
col24 VARCHAR(255),col25 VARCHAR(255),col26 VARCHAR(255),col27 VARCHAR(255),col28 VARCHAR(255), col29 VARCHAR(255),
|
||||
col30 VARCHAR(255),col31 VARCHAR(255),col32 VARCHAR(255),col33 VARCHAR(255),col34 VARCHAR(255), col35 VARCHAR(255),
|
||||
col36 VARCHAR(255),col37 VARCHAR(255),col38 VARCHAR(255),col39 VARCHAR(255),col40 VARCHAR(255), col41 VARCHAR(255),
|
||||
col42 VARCHAR(255),col43 VARCHAR(255),col44 VARCHAR(255),col45 VARCHAR(255),col46 VARCHAR(255), col47 VARCHAR(255),
|
||||
col48 VARCHAR(255),col49 VARCHAR(255),col50 VARCHAR(255),col51 VARCHAR(255),col52 VARCHAR(255), col53 VARCHAR(255),
|
||||
col54 VARCHAR(255),col55 VARCHAR(255),col56 VARCHAR(255),col57 VARCHAR(255),col58 VARCHAR(255), col59 VARCHAR(255),
|
||||
col60 VARCHAR(255),col61 VARCHAR(255),col62 VARCHAR(255),col63 VARCHAR(255),col64 VARCHAR(255), col65 VARCHAR(255))
|
||||
ENGINE = innodb ROW_FORMAT=DYNAMIC;
|
||||
|
||||
# row size 16318 : expected to fail
|
||||
--error ER_TOO_BIG_ROWSIZE
|
||||
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',156),NULL);
|
||||
|
||||
# row size 16317
|
||||
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',155),NULL);
|
||||
|
||||
SELECT * FROM tab5;
|
||||
DROP TABLE tab5;
|
||||
|
||||
# Check the Warning | 139 | Row size too large (> 16318)
|
||||
--replace_regex /> [0-9]+/> NNNN/
|
||||
CREATE TABLE tab5(col1 CHAR (255), col2 CHAR (255), col3 CHAR(255),col4 CHAR(255), col5 CHAR(255),
|
||||
col6 CHAR(255), col7 CHAR(255), col8 CHAR(255), col9 CHAR(255),col10 CHAR(255), col11 CHAR(255),
|
||||
col12 CHAR(255), col13 CHAR(255),col14 CHAR(255),col15 CHAR(255),col16 CHAR(255), col17 CHAR(255),
|
||||
col18 CHAR(255),col19 CHAR(255),col20 CHAR(255),col21 CHAR(255),col22 CHAR(255), col23 CHAR(255),
|
||||
col24 CHAR(255),col25 CHAR(255),col26 CHAR(255),col27 CHAR(255),col28 CHAR(255), col29 CHAR(255),
|
||||
col30 CHAR(255),col31 CHAR(255),col32 CHAR(255),col33 CHAR(255),col34 CHAR(255), col35 CHAR(255),
|
||||
col36 CHAR(255),col37 CHAR(255),col38 CHAR(255),col39 CHAR(255),col40 CHAR(255), col41 CHAR(255),
|
||||
col42 CHAR(255),col43 CHAR(255),col44 CHAR(255),col45 CHAR(255),col46 CHAR(255), col47 CHAR(255),
|
||||
col48 CHAR(255),col49 CHAR(255),col50 CHAR(255),col51 CHAR(255),col52 CHAR(255), col53 CHAR(255),
|
||||
col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255), col59 CHAR(255),
|
||||
col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255),col64 CHAR(255), col65 CHAR(255))
|
||||
ENGINE = innodb ROW_FORMAT=REDUNDANT;
|
||||
|
||||
# 65 * 255 = 16575
|
||||
--error ER_TOO_BIG_ROWSIZE
|
||||
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255));
|
||||
|
||||
SELECT * FROM tab5;
|
||||
DROP TABLE tab5;
|
||||
|
||||
# Check the Warning | 139 | Row size too large (> 16318)
|
||||
--replace_regex /> [0-9]+/> NNNN/
|
||||
CREATE TABLE tab5(col1 VARCHAR (255), col2 VARCHAR (255), col3 VARCHAR(255),col4 VARCHAR(255), col5 VARCHAR(255),
|
||||
col6 VARCHAR(255), col7 VARCHAR(255), col8 VARCHAR(255), col9 VARCHAR(255),col10 VARCHAR(255), col11 VARCHAR(255),
|
||||
col12 VARCHAR(255), col13 VARCHAR(255),col14 VARCHAR(255),col15 VARCHAR(255),col16 VARCHAR(255), col17 VARCHAR(255),
|
||||
col18 VARCHAR(255),col19 VARCHAR(255),col20 VARCHAR(255),col21 VARCHAR(255),col22 VARCHAR(255), col23 VARCHAR(255),
|
||||
col24 VARCHAR(255),col25 VARCHAR(255),col26 VARCHAR(255),col27 VARCHAR(255),col28 VARCHAR(255), col29 VARCHAR(255),
|
||||
col30 VARCHAR(255),col31 VARCHAR(255),col32 VARCHAR(255),col33 VARCHAR(255),col34 VARCHAR(255), col35 VARCHAR(255),
|
||||
col36 VARCHAR(255),col37 VARCHAR(255),col38 VARCHAR(255),col39 VARCHAR(255),col40 VARCHAR(255), col41 VARCHAR(255),
|
||||
col42 VARCHAR(255),col43 VARCHAR(255),col44 VARCHAR(255),col45 VARCHAR(255),col46 VARCHAR(255), col47 VARCHAR(255),
|
||||
col48 VARCHAR(255),col49 VARCHAR(255),col50 VARCHAR(255),col51 VARCHAR(255),col52 VARCHAR(255), col53 VARCHAR(255),
|
||||
col54 VARCHAR(255),col55 VARCHAR(255),col56 VARCHAR(255),col57 VARCHAR(255),col58 VARCHAR(255), col59 VARCHAR(255),
|
||||
col60 VARCHAR(255),col61 VARCHAR(255),col62 VARCHAR(255),col63 VARCHAR(255),col64 VARCHAR(255), col65 VARCHAR(255))
|
||||
ENGINE = innodb ROW_FORMAT=REDUNDANT;
|
||||
|
||||
# row size 16315 : expected to fail
|
||||
--error ER_TOO_BIG_ROWSIZE
|
||||
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',89),NULL);
|
||||
|
||||
# row size 16314
|
||||
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',88),NULL);
|
||||
|
||||
SELECT * FROM tab5;
|
||||
DROP TABLE tab5;
|
||||
|
||||
# Check the Warning | 1478 InnoDB: Cannot create a COMPRESSED table when innodb_page_size > NNNNk. Assuming ROW_FORMAT=COMPACT
|
||||
--replace_regex /> [0-9]+/> NNNN/
|
||||
CREATE TABLE tab5(col1 VARCHAR (255), col2 VARCHAR (255), col3 VARCHAR(255),col4 VARCHAR(255), col5 VARCHAR(255),
|
||||
col6 VARCHAR(255), col7 VARCHAR(255), col8 VARCHAR(255), col9 VARCHAR(255),col10 VARCHAR(255), col11 VARCHAR(255),
|
||||
col12 VARCHAR(255), col13 VARCHAR(255),col14 VARCHAR(255),col15 VARCHAR(255),col16 VARCHAR(255), col17 VARCHAR(255),
|
||||
col18 VARCHAR(255),col19 VARCHAR(255),col20 VARCHAR(255),col21 VARCHAR(255),col22 VARCHAR(255), col23 VARCHAR(255),
|
||||
col24 VARCHAR(255),col25 VARCHAR(255),col26 VARCHAR(255),col27 VARCHAR(255),col28 VARCHAR(255), col29 VARCHAR(255),
|
||||
col30 VARCHAR(255),col31 VARCHAR(255),col32 VARCHAR(255),col33 VARCHAR(255),col34 VARCHAR(255), col35 VARCHAR(255),
|
||||
col36 VARCHAR(255),col37 VARCHAR(255),col38 VARCHAR(255),col39 VARCHAR(255),col40 VARCHAR(255), col41 VARCHAR(255),
|
||||
col42 VARCHAR(255),col43 VARCHAR(255),col44 VARCHAR(255),col45 VARCHAR(255),col46 VARCHAR(255), col47 VARCHAR(255),
|
||||
col48 VARCHAR(255),col49 VARCHAR(255),col50 VARCHAR(255),col51 VARCHAR(255),col52 VARCHAR(255), col53 VARCHAR(255),
|
||||
col54 VARCHAR(255),col55 VARCHAR(255),col56 VARCHAR(255),col57 VARCHAR(255),col58 VARCHAR(255), col59 VARCHAR(255),
|
||||
col60 VARCHAR(255),col61 VARCHAR(255),col62 VARCHAR(255),col63 VARCHAR(255),col64 VARCHAR(255), col65 VARCHAR(255))
|
||||
ENGINE = innodb ROW_FORMAT=COMPRESSED;
|
||||
|
||||
DROP TABLE tab5;
|
||||
|
||||
CREATE TABLE t(col BLOB) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
|
||||
SHOW WARNINGS;
|
||||
INSERT INTO t VALUES (REPEAT('a',16384));
|
||||
INSERT INTO t VALUES (REPEAT('a',32768));
|
||||
INSERT INTO t VALUES (REPEAT('a',65535));
|
||||
SELECT LENGTH(col) FROM t;
|
||||
FLUSH TABLE t;
|
||||
ANALYZE TABLE t;
|
||||
SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
|
||||
WHERE name = 'test/t';
|
||||
DROP TABLE t;
|
||||
|
||||
CREATE TABLE t(col BLOB) ENGINE=InnoDB ROW_FORMAT=REDUNDANT;
|
||||
SHOW WARNINGS;
|
||||
INSERT INTO t VALUES (REPEAT('a',16384));
|
||||
INSERT INTO t VALUES (REPEAT('a',32768));
|
||||
INSERT INTO t VALUES (REPEAT('a',65535));
|
||||
SELECT LENGTH(col) FROM t;
|
||||
FLUSH TABLE t;
|
||||
ANALYZE TABLE t;
|
||||
SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
|
||||
WHERE name = 'test/t';
|
||||
DROP TABLE t;
|
||||
|
||||
CREATE TABLE t(col BLOB) ENGINE=InnoDB ROW_FORMAT=COMPACT;
|
||||
SHOW WARNINGS;
|
||||
INSERT INTO t VALUES (REPEAT('a',16384));
|
||||
INSERT INTO t VALUES (REPEAT('a',32768));
|
||||
INSERT INTO t VALUES (REPEAT('a',65535));
|
||||
SELECT LENGTH(col) FROM t;
|
||||
FLUSH TABLE t;
|
||||
ANALYZE TABLE t;
|
||||
SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
|
||||
WHERE name = 'test/t';
|
||||
DROP TABLE t;
|
@@ -1,5 +0,0 @@
|
||||
--innodb-page-size=64K
|
||||
--innodb_buffer_pool_size=32M
|
||||
--skip-innodb-stats-persistent
|
||||
--innodb-sys-tablestats
|
||||
--skip-innodb-read-only-compressed
|
@@ -1,508 +0,0 @@
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_innodb_64k.inc
|
||||
|
||||
# Check page size 64k
|
||||
SELECT @@innodb_page_size;
|
||||
|
||||
SET innodb_strict_mode=ON;
|
||||
|
||||
# FIXED not supported
|
||||
-- error 1005
|
||||
CREATE TABLE tab5(col1 CHAR (255), col2 CHAR (255), col3 CHAR(255),col4 CHAR(255), col5 CHAR(255),
|
||||
col6 CHAR(255), col7 CHAR(255), col8 CHAR(255), col9 CHAR(255),col10 CHAR(255), col11 CHAR(255),
|
||||
col12 CHAR(255), col13 CHAR(255),col14 CHAR(255),col15 CHAR(255),col16 CHAR(255), col17 CHAR(255),
|
||||
col18 CHAR(255),col19 CHAR(255),col20 CHAR(255),col21 CHAR(255),col22 CHAR(255), col23 CHAR(255),
|
||||
col24 CHAR(255),col25 CHAR(255),col26 CHAR(255),col27 CHAR(255),col28 CHAR(255), col29 CHAR(255),
|
||||
col30 CHAR(255),col31 CHAR(255),col32 CHAR(255),col33 CHAR(255),col34 CHAR(255), col35 CHAR(255),
|
||||
col36 CHAR(255),col37 CHAR(255),col38 CHAR(255),col39 CHAR(255),col40 CHAR(255), col41 CHAR(255),
|
||||
col42 CHAR(255),col43 CHAR(255),col44 CHAR(255),col45 CHAR(255),col46 CHAR(255), col47 CHAR(255),
|
||||
col48 CHAR(255),col49 CHAR(255),col50 CHAR(255),col51 CHAR(255),col52 CHAR(255), col53 CHAR(255),
|
||||
col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255), col59 CHAR(255),
|
||||
col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255),col64 CHAR(255), col65 CHAR(255))
|
||||
ENGINE = innodb ROW_FORMAT=FIXED;
|
||||
show warnings;
|
||||
|
||||
-- error 1005
|
||||
CREATE TABLE tab5(col1 CHAR (255), col2 CHAR (255), col3 CHAR(255),col4 CHAR(255), col5 CHAR(255),
|
||||
col6 CHAR(255), col7 CHAR(255), col8 CHAR(255), col9 CHAR(255),col10 CHAR(255), col11 CHAR(255),
|
||||
col12 CHAR(255), col13 CHAR(255),col14 CHAR(255),col15 CHAR(255),col16 CHAR(255), col17 CHAR(255),
|
||||
col18 CHAR(255),col19 CHAR(255),col20 CHAR(255),col21 CHAR(255),col22 CHAR(255), col23 CHAR(255),
|
||||
col24 CHAR(255),col25 CHAR(255),col26 CHAR(255),col27 CHAR(255),col28 CHAR(255), col29 CHAR(255),
|
||||
col30 CHAR(255),col31 CHAR(255),col32 CHAR(255),col33 CHAR(255),col34 CHAR(255), col35 CHAR(255),
|
||||
col36 CHAR(255),col37 CHAR(255),col38 CHAR(255),col39 CHAR(255),col40 CHAR(255), col41 CHAR(255),
|
||||
col42 CHAR(255),col43 CHAR(255),col44 CHAR(255),col45 CHAR(255),col46 CHAR(255), col47 CHAR(255),
|
||||
col48 CHAR(255),col49 CHAR(255),col50 CHAR(255),col51 CHAR(255),col52 CHAR(255), col53 CHAR(255),
|
||||
col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255), col59 CHAR(255),
|
||||
col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255),col64 CHAR(255), col65 CHAR(255))
|
||||
ENGINE = innodb ROW_FORMAT=COMPRESSED;
|
||||
show warnings;
|
||||
|
||||
--disable_warnings
|
||||
SET @@innodb_strict_mode=OFF;
|
||||
SELECT @@innodb_strict_mode;
|
||||
--enable_warnings
|
||||
|
||||
# Check the Warning | 139 | Row size too large
|
||||
--replace_regex /> [0-9]+/> NNNN/
|
||||
CREATE TABLE tab5(col1 CHAR (255), col2 CHAR (255), col3 CHAR(255),col4 CHAR(255), col5 CHAR(255),
|
||||
col6 CHAR(255), col7 CHAR(255), col8 CHAR(255), col9 CHAR(255),col10 CHAR(255), col11 CHAR(255),
|
||||
col12 CHAR(255), col13 CHAR(255),col14 CHAR(255),col15 CHAR(255),col16 CHAR(255), col17 CHAR(255),
|
||||
col18 CHAR(255),col19 CHAR(255),col20 CHAR(255),col21 CHAR(255),col22 CHAR(255), col23 CHAR(255),
|
||||
col24 CHAR(255),col25 CHAR(255),col26 CHAR(255),col27 CHAR(255),col28 CHAR(255), col29 CHAR(255),
|
||||
col30 CHAR(255),col31 CHAR(255),col32 CHAR(255),col33 CHAR(255),col34 CHAR(255), col35 CHAR(255),
|
||||
col36 CHAR(255),col37 CHAR(255),col38 CHAR(255),col39 CHAR(255),col40 CHAR(255), col41 CHAR(255),
|
||||
col42 CHAR(255),col43 CHAR(255),col44 CHAR(255),col45 CHAR(255),col46 CHAR(255), col47 CHAR(255),
|
||||
col48 CHAR(255),col49 CHAR(255),col50 CHAR(255),col51 CHAR(255),col52 CHAR(255), col53 CHAR(255),
|
||||
col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255), col59 CHAR(255),
|
||||
col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255),col64 CHAR(255), col65 CHAR(255),
|
||||
ccol1 CHAR(255),ccol2 CHAR(255),ccol3 CHAR(255),ccol4 CHAR(255),ccol5 CHAR(255),
|
||||
ccol6 CHAR(255),ccol7 CHAR(255),ccol8 CHAR(255),ccol9 CHAR(255),ccol10 CHAR(255), ccol11 CHAR(255),
|
||||
ccol12 CHAR(255),ccol13 CHAR(255),ccol14 CHAR(255),ccol15 CHAR(255),ccol16 CHAR(255), ccol17 CHAR(255),
|
||||
ccol18 CHAR(255),ccol19 CHAR(255),ccol20 CHAR(255),ccol21 CHAR(255),ccol22 CHAR(255), ccol23 CHAR(255),
|
||||
ccol24 CHAR(255),ccol25 CHAR(255),ccol26 CHAR(255),ccol27 CHAR(255),ccol28 CHAR(255), ccol29 CHAR(255),
|
||||
ccol30 CHAR(255),ccol31 CHAR(255),ccol32 CHAR(255),ccol33 CHAR(255),ccol34 CHAR(255), ccol35 CHAR(255),
|
||||
ccol36 CHAR(255),ccol37 CHAR(255),ccol38 CHAR(255),ccol39 CHAR(255),ccol40 CHAR(255), ccol41 CHAR(255),
|
||||
ccol42 CHAR(255),ccol43 CHAR(255),ccol44 CHAR(255),ccol45 CHAR(255),ccol46 CHAR(255), ccol47 CHAR(255),
|
||||
ccol48 CHAR(255),ccol49 CHAR(255),ccol50 CHAR(255),ccol51 CHAR(255),ccol52 CHAR(255), ccol53 CHAR(255),
|
||||
ccol54 CHAR(255),ccol55 CHAR(255),ccol56 CHAR(255),ccol57 CHAR(255),ccol58 CHAR(255), ccol59 CHAR(255),
|
||||
ccol60 CHAR(255),ccol61 CHAR(255),ccol62 CHAR(255),ccol63 CHAR(255),ccol64 CHAR(255), ccol65 CHAR(255)
|
||||
)
|
||||
ENGINE = innodb ROW_FORMAT=COMPACT;
|
||||
|
||||
# row size 32936 : should fail
|
||||
--error ER_TOO_BIG_ROWSIZE
|
||||
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),'a',NULL);
|
||||
|
||||
SELECT * FROM tab5;
|
||||
DROP TABLE tab5;
|
||||
|
||||
CREATE TABLE tab5(col1 VARCHAR (255), col2 VARCHAR (255), col3 VARCHAR(255),col4 VARCHAR(255), col5 VARCHAR(255),
|
||||
col6 VARCHAR(255), col7 VARCHAR(255), col8 VARCHAR(255), col9 VARCHAR(255),col10 VARCHAR(255), col11 VARCHAR(255),
|
||||
col12 VARCHAR(255), col13 VARCHAR(255),col14 VARCHAR(255),col15 VARCHAR(255),col16 VARCHAR(255), col17 VARCHAR(255),
|
||||
col18 VARCHAR(255),col19 VARCHAR(255),col20 VARCHAR(255),col21 VARCHAR(255),col22 VARCHAR(255), col23 VARCHAR(255),
|
||||
col24 VARCHAR(255),col25 VARCHAR(255),col26 VARCHAR(255),col27 VARCHAR(255),col28 VARCHAR(255), col29 VARCHAR(255),
|
||||
col30 VARCHAR(255),col31 VARCHAR(255),col32 VARCHAR(255),col33 VARCHAR(255),col34 VARCHAR(255), col35 VARCHAR(255),
|
||||
col36 VARCHAR(255),col37 VARCHAR(255),col38 VARCHAR(255),col39 VARCHAR(255),col40 VARCHAR(255), col41 VARCHAR(255),
|
||||
col42 VARCHAR(255),col43 VARCHAR(255),col44 VARCHAR(255),col45 VARCHAR(255),col46 VARCHAR(255), col47 VARCHAR(255),
|
||||
col48 VARCHAR(255),col49 VARCHAR(255),col50 VARCHAR(255),col51 VARCHAR(255),col52 VARCHAR(255), col53 VARCHAR(255),
|
||||
col54 VARCHAR(255),col55 VARCHAR(255),col56 VARCHAR(255),col57 VARCHAR(255),col58 VARCHAR(255), col59 VARCHAR(255),
|
||||
col60 VARCHAR(255),col61 VARCHAR(255),col62 VARCHAR(255),col63 VARCHAR(255),col64 VARCHAR(255), col65 VARCHAR(255),
|
||||
ccol1 VARCHAR(255),ccol2 VARCHAR(255),ccol3 VARCHAR(255),ccol4 VARCHAR(255),ccol5 VARCHAR(255),
|
||||
ccol6 VARCHAR(255),ccol7 VARCHAR(255),ccol8 VARCHAR(255),ccol9 VARCHAR(255),ccol10 VARCHAR(255), ccol11 VARCHAR(255),
|
||||
ccol12 VARCHAR(255),ccol13 VARCHAR(255),ccol14 VARCHAR(255),ccol15 VARCHAR(255),ccol16 VARCHAR(255), ccol17 VARCHAR(255),
|
||||
ccol18 VARCHAR(255),ccol19 VARCHAR(255),ccol20 VARCHAR(255),ccol21 VARCHAR(255),ccol22 VARCHAR(255), ccol23 VARCHAR(255),
|
||||
ccol24 VARCHAR(255),ccol25 VARCHAR(255),ccol26 VARCHAR(255),ccol27 VARCHAR(255),ccol28 VARCHAR(255), ccol29 VARCHAR(255),
|
||||
ccol30 VARCHAR(255),ccol31 VARCHAR(255),ccol32 VARCHAR(255),ccol33 VARCHAR(255),ccol34 VARCHAR(255), ccol35 VARCHAR(255),
|
||||
ccol36 VARCHAR(255),ccol37 VARCHAR(255),ccol38 VARCHAR(255),ccol39 VARCHAR(255),ccol40 VARCHAR(255), ccol41 VARCHAR(255),
|
||||
ccol42 VARCHAR(255),ccol43 VARCHAR(255),ccol44 VARCHAR(255),ccol45 VARCHAR(255),ccol46 VARCHAR(255), ccol47 VARCHAR(255),
|
||||
ccol48 VARCHAR(255),ccol49 VARCHAR(255),ccol50 VARCHAR(255),ccol51 VARCHAR(255),ccol52 VARCHAR(255), ccol53 VARCHAR(255),
|
||||
ccol54 VARCHAR(255),ccol55 VARCHAR(255),ccol56 VARCHAR(255),ccol57 VARCHAR(255),ccol58 VARCHAR(255), ccol59 VARCHAR(255),
|
||||
ccol60 VARCHAR(255),ccol61 VARCHAR(255),ccol62 VARCHAR(255),ccol63 VARCHAR(255),ccol64 VARCHAR(255), ccol65 VARCHAR(255)
|
||||
)
|
||||
ENGINE = innodb ROW_FORMAT=COMPACT;
|
||||
|
||||
# row size 16384 >= 16K : expected to fail
|
||||
--error ER_TOO_BIG_ROWSIZE
|
||||
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',214),NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL
|
||||
);
|
||||
|
||||
# row size 16383 < 16K : expected to pass
|
||||
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',213),NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL
|
||||
);
|
||||
|
||||
SELECT * FROM tab5;
|
||||
DROP TABLE tab5;
|
||||
|
||||
# Check the Warning | 139 | Row size too large (> 16318)
|
||||
--replace_regex /> [0-9]+/> NNNN/
|
||||
CREATE TABLE tab5(col1 CHAR (255), col2 CHAR (255), col3 CHAR(255),col4 CHAR(255), col5 CHAR(255),
|
||||
col6 CHAR(255), col7 CHAR(255), col8 CHAR(255), col9 CHAR(255),col10 CHAR(255), col11 CHAR(255),
|
||||
col12 CHAR(255), col13 CHAR(255),col14 CHAR(255),col15 CHAR(255),col16 CHAR(255), col17 CHAR(255),
|
||||
col18 CHAR(255),col19 CHAR(255),col20 CHAR(255),col21 CHAR(255),col22 CHAR(255), col23 CHAR(255),
|
||||
col24 CHAR(255),col25 CHAR(255),col26 CHAR(255),col27 CHAR(255),col28 CHAR(255), col29 CHAR(255),
|
||||
col30 CHAR(255),col31 CHAR(255),col32 CHAR(255),col33 CHAR(255),col34 CHAR(255), col35 CHAR(255),
|
||||
col36 CHAR(255),col37 CHAR(255),col38 CHAR(255),col39 CHAR(255),col40 CHAR(255), col41 CHAR(255),
|
||||
col42 CHAR(255),col43 CHAR(255),col44 CHAR(255),col45 CHAR(255),col46 CHAR(255), col47 CHAR(255),
|
||||
col48 CHAR(255),col49 CHAR(255),col50 CHAR(255),col51 CHAR(255),col52 CHAR(255), col53 CHAR(255),
|
||||
col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255), col59 CHAR(255),
|
||||
col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255),col64 CHAR(255), col65 CHAR(255),
|
||||
ccol1 CHAR(255),ccol2 CHAR(255),ccol3 CHAR(255),ccol4 CHAR(255),ccol5 CHAR(255),
|
||||
ccol6 CHAR(255),ccol7 CHAR(255),ccol8 CHAR(255),ccol9 CHAR(255),ccol10 CHAR(255), ccol11 CHAR(255),
|
||||
ccol12 CHAR(255),ccol13 CHAR(255),ccol14 CHAR(255),ccol15 CHAR(255),ccol16 CHAR(255), ccol17 CHAR(255),
|
||||
ccol18 CHAR(255),ccol19 CHAR(255),ccol20 CHAR(255),ccol21 CHAR(255),ccol22 CHAR(255), ccol23 CHAR(255),
|
||||
ccol24 CHAR(255),ccol25 CHAR(255),ccol26 CHAR(255),ccol27 CHAR(255),ccol28 CHAR(255), ccol29 CHAR(255),
|
||||
ccol30 CHAR(255),ccol31 CHAR(255),ccol32 CHAR(255),ccol33 CHAR(255),ccol34 CHAR(255), ccol35 CHAR(255),
|
||||
ccol36 CHAR(255),ccol37 CHAR(255),ccol38 CHAR(255),ccol39 CHAR(255),ccol40 CHAR(255), ccol41 CHAR(255),
|
||||
ccol42 CHAR(255),ccol43 CHAR(255),ccol44 CHAR(255),ccol45 CHAR(255),ccol46 CHAR(255), ccol47 CHAR(255),
|
||||
ccol48 CHAR(255),ccol49 CHAR(255),ccol50 CHAR(255),ccol51 CHAR(255),ccol52 CHAR(255), ccol53 CHAR(255),
|
||||
ccol54 CHAR(255),ccol55 CHAR(255),ccol56 CHAR(255),ccol57 CHAR(255),ccol58 CHAR(255), ccol59 CHAR(255),
|
||||
ccol60 CHAR(255),ccol61 CHAR(255),ccol62 CHAR(255),ccol63 CHAR(255),ccol64 CHAR(255), ccol65 CHAR(255)
|
||||
)
|
||||
ENGINE = innodb ROW_FORMAT=DYNAMIC;
|
||||
DROP TABLE tab5;
|
||||
|
||||
# Check the Warning | 139 | Row size too large (> 16318)
|
||||
--replace_regex /> [0-9]+/> NNNN/
|
||||
CREATE TABLE tab5(col1 VARCHAR (255), col2 VARCHAR (255), col3 VARCHAR(255),col4 VARCHAR(255), col5 VARCHAR(255),
|
||||
col6 VARCHAR(255), col7 VARCHAR(255), col8 VARCHAR(255), col9 VARCHAR(255),col10 VARCHAR(255), col11 VARCHAR(255),
|
||||
col12 VARCHAR(255), col13 VARCHAR(255),col14 VARCHAR(255),col15 VARCHAR(255),col16 VARCHAR(255), col17 VARCHAR(255),
|
||||
col18 VARCHAR(255),col19 VARCHAR(255),col20 VARCHAR(255),col21 VARCHAR(255),col22 VARCHAR(255), col23 VARCHAR(255),
|
||||
col24 VARCHAR(255),col25 VARCHAR(255),col26 VARCHAR(255),col27 VARCHAR(255),col28 VARCHAR(255), col29 VARCHAR(255),
|
||||
col30 VARCHAR(255),col31 VARCHAR(255),col32 VARCHAR(255),col33 VARCHAR(255),col34 VARCHAR(255), col35 VARCHAR(255),
|
||||
col36 VARCHAR(255),col37 VARCHAR(255),col38 VARCHAR(255),col39 VARCHAR(255),col40 VARCHAR(255), col41 VARCHAR(255),
|
||||
col42 VARCHAR(255),col43 VARCHAR(255),col44 VARCHAR(255),col45 VARCHAR(255),col46 VARCHAR(255), col47 VARCHAR(255),
|
||||
col48 VARCHAR(255),col49 VARCHAR(255),col50 VARCHAR(255),col51 VARCHAR(255),col52 VARCHAR(255), col53 VARCHAR(255),
|
||||
col54 VARCHAR(255),col55 VARCHAR(255),col56 VARCHAR(255),col57 VARCHAR(255),col58 VARCHAR(255), col59 VARCHAR(255),
|
||||
col60 VARCHAR(255),col61 VARCHAR(255),col62 VARCHAR(255),col63 VARCHAR(255),col64 VARCHAR(255), col65 VARCHAR(255),
|
||||
ccol1 VARCHAR(255),ccol2 VARCHAR(255),ccol3 VARCHAR(255),ccol4 VARCHAR(255),ccol5 VARCHAR(255),
|
||||
ccol6 VARCHAR(255),ccol7 VARCHAR(255),ccol8 VARCHAR(255),ccol9 VARCHAR(255),ccol10 VARCHAR(255), ccol11 VARCHAR(255),
|
||||
ccol12 VARCHAR(255),ccol13 VARCHAR(255),ccol14 VARCHAR(255),ccol15 VARCHAR(255),ccol16 VARCHAR(255), ccol17 VARCHAR(255),
|
||||
ccol18 VARCHAR(255),ccol19 VARCHAR(255),ccol20 VARCHAR(255),ccol21 VARCHAR(255),ccol22 VARCHAR(255), ccol23 VARCHAR(255),
|
||||
ccol24 VARCHAR(255),ccol25 VARCHAR(255),ccol26 VARCHAR(255),ccol27 VARCHAR(255),ccol28 VARCHAR(255), ccol29 VARCHAR(255),
|
||||
ccol30 VARCHAR(255),ccol31 VARCHAR(255),ccol32 VARCHAR(255),ccol33 VARCHAR(255),ccol34 VARCHAR(255), ccol35 VARCHAR(255),
|
||||
ccol36 VARCHAR(255),ccol37 VARCHAR(255),ccol38 VARCHAR(255),ccol39 VARCHAR(255),ccol40 VARCHAR(255), ccol41 VARCHAR(255),
|
||||
ccol42 VARCHAR(255),ccol43 VARCHAR(255),ccol44 VARCHAR(255),ccol45 VARCHAR(255),ccol46 VARCHAR(255), ccol47 VARCHAR(255),
|
||||
ccol48 VARCHAR(255),ccol49 VARCHAR(255),ccol50 VARCHAR(255),ccol51 VARCHAR(255),ccol52 VARCHAR(255), ccol53 VARCHAR(255),
|
||||
ccol54 VARCHAR(255),ccol55 VARCHAR(255),ccol56 VARCHAR(255),ccol57 VARCHAR(255),ccol58 VARCHAR(255), ccol59 VARCHAR(255),
|
||||
ccol60 VARCHAR(255),ccol61 VARCHAR(255),ccol62 VARCHAR(255),ccol63 VARCHAR(255),ccol64 VARCHAR(255), ccol65 VARCHAR(255)
|
||||
)
|
||||
ENGINE = innodb ROW_FORMAT=DYNAMIC;
|
||||
|
||||
# row size 16384 >= 16K : expected to fail
|
||||
--error ER_TOO_BIG_ROWSIZE
|
||||
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',214),NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL
|
||||
);
|
||||
|
||||
# row size 16383 < 16K : expected to pass
|
||||
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',213),NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL
|
||||
);
|
||||
|
||||
SELECT * FROM tab5;
|
||||
DROP TABLE tab5;
|
||||
|
||||
# Check the Warning | 139 | Row size too large
|
||||
--replace_regex /> [0-9]+/> NNNN/
|
||||
CREATE TABLE tab5(col1 CHAR (255), col2 CHAR (255), col3 CHAR(255),col4 CHAR(255), col5 CHAR(255),
|
||||
col6 CHAR(255), col7 CHAR(255), col8 CHAR(255), col9 CHAR(255),col10 CHAR(255), col11 CHAR(255),
|
||||
col12 CHAR(255), col13 CHAR(255),col14 CHAR(255),col15 CHAR(255),col16 CHAR(255), col17 CHAR(255),
|
||||
col18 CHAR(255),col19 CHAR(255),col20 CHAR(255),col21 CHAR(255),col22 CHAR(255), col23 CHAR(255),
|
||||
col24 CHAR(255),col25 CHAR(255),col26 CHAR(255),col27 CHAR(255),col28 CHAR(255), col29 CHAR(255),
|
||||
col30 CHAR(255),col31 CHAR(255),col32 CHAR(255),col33 CHAR(255),col34 CHAR(255), col35 CHAR(255),
|
||||
col36 CHAR(255),col37 CHAR(255),col38 CHAR(255),col39 CHAR(255),col40 CHAR(255), col41 CHAR(255),
|
||||
col42 CHAR(255),col43 CHAR(255),col44 CHAR(255),col45 CHAR(255),col46 CHAR(255), col47 CHAR(255),
|
||||
col48 CHAR(255),col49 CHAR(255),col50 CHAR(255),col51 CHAR(255),col52 CHAR(255), col53 CHAR(255),
|
||||
col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255), col59 CHAR(255),
|
||||
col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255),col64 CHAR(255), col65 CHAR(255),
|
||||
ccol1 CHAR(255),ccol2 CHAR(255),ccol3 CHAR(255),ccol4 CHAR(255),ccol5 CHAR(255),
|
||||
ccol6 CHAR(255),ccol7 CHAR(255),ccol8 CHAR(255),ccol9 CHAR(255),ccol10 CHAR(255), ccol11 CHAR(255),
|
||||
ccol12 CHAR(255),ccol13 CHAR(255),ccol14 CHAR(255),ccol15 CHAR(255),ccol16 CHAR(255), ccol17 CHAR(255),
|
||||
ccol18 CHAR(255),ccol19 CHAR(255),ccol20 CHAR(255),ccol21 CHAR(255),ccol22 CHAR(255), ccol23 CHAR(255),
|
||||
ccol24 CHAR(255),ccol25 CHAR(255),ccol26 CHAR(255),ccol27 CHAR(255),ccol28 CHAR(255), ccol29 CHAR(255),
|
||||
ccol30 CHAR(255),ccol31 CHAR(255),ccol32 CHAR(255),ccol33 CHAR(255),ccol34 CHAR(255), ccol35 CHAR(255),
|
||||
ccol36 CHAR(255),ccol37 CHAR(255),ccol38 CHAR(255),ccol39 CHAR(255),ccol40 CHAR(255), ccol41 CHAR(255),
|
||||
ccol42 CHAR(255),ccol43 CHAR(255),ccol44 CHAR(255),ccol45 CHAR(255),ccol46 CHAR(255), ccol47 CHAR(255),
|
||||
ccol48 CHAR(255),ccol49 CHAR(255),ccol50 CHAR(255),ccol51 CHAR(255),ccol52 CHAR(255), ccol53 CHAR(255),
|
||||
ccol54 CHAR(255),ccol55 CHAR(255),ccol56 CHAR(255),ccol57 CHAR(255),ccol58 CHAR(255), ccol59 CHAR(255),
|
||||
ccol60 CHAR(255),ccol61 CHAR(255),ccol62 CHAR(255),ccol63 CHAR(255),ccol64 CHAR(255), ccol65 CHAR(255)
|
||||
)
|
||||
ENGINE = innodb ROW_FORMAT=REDUNDANT;
|
||||
|
||||
# 65 * 255 = 16575
|
||||
--error ER_TOO_BIG_ROWSIZE
|
||||
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL
|
||||
);
|
||||
|
||||
SELECT * FROM tab5;
|
||||
DROP TABLE tab5;
|
||||
|
||||
# Check the Warning | 139 | Row size too large
|
||||
--replace_regex /> [0-9]+/> NNNN/
|
||||
CREATE TABLE tab5(col1 VARCHAR (255), col2 VARCHAR (255), col3 VARCHAR(255),col4 VARCHAR(255), col5 VARCHAR(255),
|
||||
col6 VARCHAR(255), col7 VARCHAR(255), col8 VARCHAR(255), col9 VARCHAR(255),col10 VARCHAR(255), col11 VARCHAR(255),
|
||||
col12 VARCHAR(255), col13 VARCHAR(255),col14 VARCHAR(255),col15 VARCHAR(255),col16 VARCHAR(255), col17 VARCHAR(255),
|
||||
col18 VARCHAR(255),col19 VARCHAR(255),col20 VARCHAR(255),col21 VARCHAR(255),col22 VARCHAR(255), col23 VARCHAR(255),
|
||||
col24 VARCHAR(255),col25 VARCHAR(255),col26 VARCHAR(255),col27 VARCHAR(255),col28 VARCHAR(255), col29 VARCHAR(255),
|
||||
col30 VARCHAR(255),col31 VARCHAR(255),col32 VARCHAR(255),col33 VARCHAR(255),col34 VARCHAR(255), col35 VARCHAR(255),
|
||||
col36 VARCHAR(255),col37 VARCHAR(255),col38 VARCHAR(255),col39 VARCHAR(255),col40 VARCHAR(255), col41 VARCHAR(255),
|
||||
col42 VARCHAR(255),col43 VARCHAR(255),col44 VARCHAR(255),col45 VARCHAR(255),col46 VARCHAR(255), col47 VARCHAR(255),
|
||||
col48 VARCHAR(255),col49 VARCHAR(255),col50 VARCHAR(255),col51 VARCHAR(255),col52 VARCHAR(255), col53 VARCHAR(255),
|
||||
col54 VARCHAR(255),col55 VARCHAR(255),col56 VARCHAR(255),col57 VARCHAR(255),col58 VARCHAR(255), col59 VARCHAR(255),
|
||||
col60 VARCHAR(255),col61 VARCHAR(255),col62 VARCHAR(255),col63 VARCHAR(255),col64 VARCHAR(255), col65 VARCHAR(255),
|
||||
ccol1 VARCHAR(255),ccol2 VARCHAR(255),ccol3 VARCHAR(255),ccol4 VARCHAR(255),ccol5 VARCHAR(255),
|
||||
ccol6 VARCHAR(255),ccol7 VARCHAR(255),ccol8 VARCHAR(255),ccol9 VARCHAR(255),ccol10 VARCHAR(255), ccol11 VARCHAR(255),
|
||||
ccol12 VARCHAR(255),ccol13 VARCHAR(255),ccol14 VARCHAR(255),ccol15 VARCHAR(255),ccol16 VARCHAR(255), ccol17 VARCHAR(255),
|
||||
ccol18 VARCHAR(255),ccol19 VARCHAR(255),ccol20 VARCHAR(255),ccol21 VARCHAR(255),ccol22 VARCHAR(255), ccol23 VARCHAR(255),
|
||||
ccol24 VARCHAR(255),ccol25 VARCHAR(255),ccol26 VARCHAR(255),ccol27 VARCHAR(255),ccol28 VARCHAR(255), ccol29 VARCHAR(255),
|
||||
ccol30 VARCHAR(255),ccol31 VARCHAR(255),ccol32 VARCHAR(255),ccol33 VARCHAR(255),ccol34 VARCHAR(255), ccol35 VARCHAR(255),
|
||||
ccol36 VARCHAR(255),ccol37 VARCHAR(255),ccol38 VARCHAR(255),ccol39 VARCHAR(255),ccol40 VARCHAR(255), ccol41 VARCHAR(255),
|
||||
ccol42 VARCHAR(255),ccol43 VARCHAR(255),ccol44 VARCHAR(255),ccol45 VARCHAR(255),ccol46 VARCHAR(255), ccol47 VARCHAR(255),
|
||||
ccol48 VARCHAR(255),ccol49 VARCHAR(255),ccol50 VARCHAR(255),ccol51 VARCHAR(255),ccol52 VARCHAR(255), ccol53 VARCHAR(255),
|
||||
ccol54 VARCHAR(255),ccol55 VARCHAR(255),ccol56 VARCHAR(255),ccol57 VARCHAR(255),ccol58 VARCHAR(255), ccol59 VARCHAR(255),
|
||||
ccol60 VARCHAR(255),ccol61 VARCHAR(255),ccol62 VARCHAR(255),ccol63 VARCHAR(255),ccol64 VARCHAR(255), ccol65 VARCHAR(255)
|
||||
)
|
||||
ENGINE = innodb ROW_FORMAT=REDUNDANT;
|
||||
|
||||
# row size 16383 >= 16K-1 : expected to fail
|
||||
--error ER_TOO_BIG_ROWSIZE
|
||||
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',27),NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL
|
||||
);
|
||||
|
||||
# row size 16382 < 16K-1 : expected to pass
|
||||
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
|
||||
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',26),NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL,
|
||||
NULL,NULL,NULL,NULL,NULL
|
||||
);
|
||||
|
||||
SELECT * FROM tab5;
|
||||
DROP TABLE tab5;
|
||||
|
||||
# Check the Warning | 1478 InnoDB: Cannot create a COMPRESSED table when innodb_page_size > NNNNk. Assuming ROW_FORMAT=COMPACT
|
||||
--replace_regex /> [0-9]+/> NNNN/
|
||||
CREATE TABLE tab5(col1 VARCHAR (255), col2 VARCHAR (255), col3 VARCHAR(255),col4 VARCHAR(255), col5 VARCHAR(255),
|
||||
col6 VARCHAR(255), col7 VARCHAR(255), col8 VARCHAR(255), col9 VARCHAR(255),col10 VARCHAR(255), col11 VARCHAR(255),
|
||||
col12 VARCHAR(255), col13 VARCHAR(255),col14 VARCHAR(255),col15 VARCHAR(255),col16 VARCHAR(255), col17 VARCHAR(255),
|
||||
col18 VARCHAR(255),col19 VARCHAR(255),col20 VARCHAR(255),col21 VARCHAR(255),col22 VARCHAR(255), col23 VARCHAR(255),
|
||||
col24 VARCHAR(255),col25 VARCHAR(255),col26 VARCHAR(255),col27 VARCHAR(255),col28 VARCHAR(255), col29 VARCHAR(255),
|
||||
col30 VARCHAR(255),col31 VARCHAR(255),col32 VARCHAR(255),col33 VARCHAR(255),col34 VARCHAR(255), col35 VARCHAR(255),
|
||||
col36 VARCHAR(255),col37 VARCHAR(255),col38 VARCHAR(255),col39 VARCHAR(255),col40 VARCHAR(255), col41 VARCHAR(255),
|
||||
col42 VARCHAR(255),col43 VARCHAR(255),col44 VARCHAR(255),col45 VARCHAR(255),col46 VARCHAR(255), col47 VARCHAR(255),
|
||||
col48 VARCHAR(255),col49 VARCHAR(255),col50 VARCHAR(255),col51 VARCHAR(255),col52 VARCHAR(255), col53 VARCHAR(255),
|
||||
col54 VARCHAR(255),col55 VARCHAR(255),col56 VARCHAR(255),col57 VARCHAR(255),col58 VARCHAR(255), col59 VARCHAR(255),
|
||||
col60 VARCHAR(255),col61 VARCHAR(255),col62 VARCHAR(255),col63 VARCHAR(255),col64 VARCHAR(255), col65 VARCHAR(255))
|
||||
ENGINE = innodb ROW_FORMAT=COMPRESSED;
|
||||
|
||||
DROP TABLE tab5;
|
||||
|
||||
CREATE TABLE t(col BLOB) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
|
||||
SHOW WARNINGS;
|
||||
INSERT INTO t VALUES (REPEAT('a',16384));
|
||||
INSERT INTO t VALUES (REPEAT('a',32768));
|
||||
INSERT INTO t VALUES (REPEAT('a',65535));
|
||||
SELECT LENGTH(col) FROM t;
|
||||
FLUSH TABLE t;
|
||||
ANALYZE TABLE t;
|
||||
SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
|
||||
WHERE name = 'test/t';
|
||||
DROP TABLE t;
|
||||
|
||||
CREATE TABLE t(col BLOB) ENGINE=InnoDB ROW_FORMAT=REDUNDANT;
|
||||
SHOW WARNINGS;
|
||||
INSERT INTO t VALUES (REPEAT('a',16384));
|
||||
INSERT INTO t VALUES (REPEAT('a',32768));
|
||||
INSERT INTO t VALUES (REPEAT('a',65535));
|
||||
SELECT LENGTH(col) FROM t;
|
||||
FLUSH TABLE t;
|
||||
ANALYZE TABLE t;
|
||||
SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
|
||||
WHERE name = 'test/t';
|
||||
DROP TABLE t;
|
||||
|
||||
CREATE TABLE t(col BLOB) ENGINE=InnoDB ROW_FORMAT=COMPACT;
|
||||
SHOW WARNINGS;
|
||||
INSERT INTO t VALUES (REPEAT('a',16384));
|
||||
INSERT INTO t VALUES (REPEAT('a',32768));
|
||||
INSERT INTO t VALUES (REPEAT('a',65535));
|
||||
SELECT LENGTH(col) FROM t;
|
||||
FLUSH TABLE t;
|
||||
ANALYZE TABLE t;
|
||||
SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
|
||||
WHERE name = 'test/t';
|
||||
DROP TABLE t;
|
@@ -41,3 +41,17 @@ DROP DATABASE db1;
|
||||
--echo #
|
||||
--echo # End of 10.6 tests
|
||||
--echo #
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-30796 Auto_increment values not updated after bulk
|
||||
--echo # insert operation
|
||||
--echo #
|
||||
CREATE TABLE t1(f1 INT NOT NULL AUTO_INCREMENT,
|
||||
f2 INT NOT NULL, PRIMARY KEY(f1))ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES(1, 2), (25, 3), (2, 4);
|
||||
--source include/restart_mysqld.inc
|
||||
INSERT INTO t1(f2) VALUES(5);
|
||||
SELECT max(f1) FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo # End of 10.9 tests
|
||||
|
@@ -128,7 +128,9 @@ INSERT INTO t1 (f1,f2,f3,f4,f5,f6,f7,f8) VALUES
|
||||
INSERT INTO t1 (f1,f2,f3,f4,f5,f6,f7,f8) VALUES ('impact', 'b', 'h', 185, 'fj', 7, 7, 3);
|
||||
|
||||
ALTER TABLE t1 ADD COLUMN filler VARCHAR(255) DEFAULT '';
|
||||
--disable_ps2_protocol
|
||||
SELECT * INTO OUTFILE 'load.data' FROM t1;
|
||||
--enable_ps2_protocol
|
||||
UPDATE IGNORE t1 SET pk = 0;
|
||||
LOAD DATA INFILE 'load.data' REPLACE INTO TABLE t1;
|
||||
HANDLER t1 OPEN AS h;
|
||||
|
@@ -278,6 +278,7 @@ primary key (a(1), c(1)), key(b)) engine = innodb;
|
||||
|
||||
insert into monitor_test values("13", 2, "aa");
|
||||
|
||||
--disable_ps2_protocol
|
||||
select a from monitor_test where b < 1 for update;
|
||||
|
||||
# should have icp_attempts = 1 and icp_out_of_range = 1
|
||||
@@ -289,6 +290,7 @@ select a from monitor_test where b < 3 for update;
|
||||
|
||||
select name, count from information_schema.innodb_metrics
|
||||
where name like "icp%";
|
||||
--enable_ps2_protocol
|
||||
|
||||
drop table monitor_test;
|
||||
set global innodb_monitor_disable = All;
|
||||
|
@@ -57,7 +57,9 @@ COMMIT;
|
||||
--disconnect con2
|
||||
SELECT * FROM t;
|
||||
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
|
||||
--disable_ps2_protocol
|
||||
SELECT * FROM t;
|
||||
--enable_ps2_protocol
|
||||
# refused on MySQL 5.6, MariaDB 10.0, 10.1, but not MariaDB 10.2+
|
||||
UPDATE t SET a=3 WHERE a=1;
|
||||
--let $restart_parameters= --innodb-read-only
|
||||
|
@@ -1,24 +1,28 @@
|
||||
--source include/have_innodb.inc
|
||||
|
||||
create table t1(f1 int primary key) engine=innodb;
|
||||
|
||||
--echo # Create statement with FK on base column of stored column
|
||||
--error ER_CANT_CREATE_TABLE
|
||||
create table t1(f1 int, f2 int as(f1) stored,
|
||||
foreign key(f1) references t2(f1) on delete cascade)engine=innodb;
|
||||
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
|
||||
create table t2(f1 int not null, f2 int as (f1) stored,
|
||||
foreign key(f1) references t1(f1) on update cascade)engine=innodb;
|
||||
|
||||
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
|
||||
create table t2(f1 int not null, f2 int as (f1) virtual, f3 int as (f2) stored,
|
||||
foreign key(f1) references t1(f1) on update cascade)engine=innodb;
|
||||
|
||||
--echo # adding new stored column during alter table copy operation.
|
||||
create table t1(f1 int primary key) engine=innodb;
|
||||
create table t2(f1 int not null, f2 int as (f1) virtual,
|
||||
foreign key(f1) references t1(f1) on update cascade)engine=innodb;
|
||||
|
||||
# MySQL 5.7 would refuse this
|
||||
#--error ER_ERROR_ON_RENAME
|
||||
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
|
||||
alter table t2 add column f3 int as (f1) stored, add column f4 int as (f1) virtual;
|
||||
show create table t2;
|
||||
drop table t2;
|
||||
|
||||
--echo # adding foreign key constraint for base columns during alter copy.
|
||||
create table t2(f1 int not null, f2 int as (f1) stored) engine=innodb;
|
||||
# MySQL 5.7 would refuse this
|
||||
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
|
||||
alter table t2 add foreign key(f1) references t1(f1) on update cascade, algorithm=copy;
|
||||
show create table t2;
|
||||
drop table t2;
|
||||
@@ -26,14 +30,14 @@ drop table t2;
|
||||
--echo # adding foreign key constraint for base columns during online alter.
|
||||
create table t2(f1 int not null, f2 int as (f1) stored) engine=innodb;
|
||||
set foreign_key_checks = 0;
|
||||
--error 138
|
||||
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
|
||||
alter table t2 add foreign key(f1) references t1(f1) on update cascade, algorithm=inplace;
|
||||
drop table t2;
|
||||
|
||||
--echo # adding stored column via online alter.
|
||||
create table t2(f1 int not null,
|
||||
foreign key(f1) references t1(f1) on update cascade)engine=innodb;
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
|
||||
alter table t2 add column f2 int as (f1) stored, algorithm=inplace;
|
||||
drop table t2, t1;
|
||||
|
||||
|
@@ -9,6 +9,7 @@ FLUSH TABLE_STATISTICS;
|
||||
SET @userstat_old= @@userstat;
|
||||
SET GLOBAL userstat=ON;
|
||||
|
||||
--disable_ps2_protocol
|
||||
CREATE TABLE t1 (id int(10), PRIMARY KEY (id));
|
||||
INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
|
||||
SELECT COUNT(*) FROM t1;
|
||||
@@ -33,6 +34,7 @@ SELECT ROWS_READ FROM INFORMATION_SCHEMA.INDEX_STATISTICS WHERE TABLE_NAME='t1';
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT ROWS_READ FROM INFORMATION_SCHEMA.TABLE_STATISTICS WHERE TABLE_NAME='t1';
|
||||
SELECT ROWS_READ FROM INFORMATION_SCHEMA.INDEX_STATISTICS WHERE TABLE_NAME='t1';
|
||||
--enable_ps2_protocol
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
|
@@ -141,7 +141,10 @@ update ignore t5 set c1 = 20 where c1 = 140 ;
|
||||
select count(*) from t5 where c1 = 140;
|
||||
|
||||
--replace_result $MYSQLTEST_VARDIR VARDIR
|
||||
--disable_ps2_protocol
|
||||
eval select * into outfile "$MYSQLTEST_VARDIR/tmp/t5.outfile" from t5;
|
||||
--enable_ps2_protocol
|
||||
|
||||
|
||||
create temporary table temp_1 engine = innodb as select * from t5 where 1=2;
|
||||
select count(*) from temp_1;
|
||||
|
87
mysql-test/suite/innodb/t/trx_sys_t_find_lf_hash_error.test
Normal file
87
mysql-test/suite/innodb/t/trx_sys_t_find_lf_hash_error.test
Normal file
@@ -0,0 +1,87 @@
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_debug.inc
|
||||
--source include/have_debug_sync.inc
|
||||
--source include/count_sessions.inc
|
||||
|
||||
create table t1 (a int) engine=innodb STATS_PERSISTENT=0;
|
||||
create table t2 (a int) engine=innodb STATS_PERSISTENT=0;
|
||||
|
||||
BEGIN; # trx1
|
||||
# register rw-transaction in trx_sys.rw_trx_hash
|
||||
insert into t1 values(1);
|
||||
|
||||
--connect (con_1, localhost, root,,)
|
||||
SET DEBUG_SYNC="before_trx_hash_find_element_mutex_enter SIGNAL before_mutex_enter WAIT_FOR cont1";
|
||||
SET DEBUG_SYNC="after_trx_hash_find_element_mutex_enter SIGNAL after_mutex_enter WAIT_FOR cont2";
|
||||
|
||||
# trx2 is converting implicit lock of trx1 to explicit one, it's invoking
|
||||
# ▾ l_search
|
||||
# ▾ lf_hash_search_using_hash_value
|
||||
# ▾ lf_hash_search
|
||||
# ▾ rw_trx_hash_t::find
|
||||
# ▾ trx_sys_t::find
|
||||
# ▾ lock_rec_convert_impl_to_expl
|
||||
# rw_trx_hash_t::find returns lf_hash element, pin 2 is pinned,
|
||||
# but element->mutex has not been acquired yet, what allows trx1 element to be
|
||||
# removed from trx_sys.rw_trx_hash at one hand, and at the other hand, the
|
||||
# content of the element is still valid as it's pinned.
|
||||
#
|
||||
# trx2
|
||||
--send SELECT * FROM t1 WHERE a = 1 FOR UPDATE
|
||||
--connection default
|
||||
SET DEBUG_SYNC="now WAIT_FOR before_mutex_enter";
|
||||
--disable_query_log
|
||||
SET @saved_dbug = @@debug_dbug;
|
||||
|
||||
# Usually pinbox purgatory is purged either when the number of elements in
|
||||
# purgatory is greater then some limit(see lf_pinbox_free()), or when thread
|
||||
# invokes rw_trx_hash_t::put_pins() explicitly. For this test the first
|
||||
# variant was choosen. The following option makes lf_pinbox_free() to purge
|
||||
# pinbox purgatory on each call, ignoring pins->purgatory_count.
|
||||
SET DEBUG_DBUG='+d,unconditional_pinbox_free';
|
||||
--enable_query_log
|
||||
|
||||
# trx1 is committed and removed from trx_sys.rw_trx_hash. It can be done as
|
||||
# trx2 has not been acquired element->mutex yet.
|
||||
COMMIT;
|
||||
--disable_query_log
|
||||
SET DEBUG_DBUG = @saved_dbug;
|
||||
--enable_query_log
|
||||
|
||||
# Let trx2 to acquire element->mutex and unpin pin 2
|
||||
SET DEBUG_SYNC="now SIGNAL cont1";
|
||||
SET DEBUG_SYNC="now WAIT_FOR after_mutex_enter";
|
||||
|
||||
--disable_query_log
|
||||
SET @saved_dbug = @@debug_dbug;
|
||||
SET DEBUG_DBUG='+d,unconditional_pinbox_free';
|
||||
--enable_query_log
|
||||
# trx3 commits and invokes lf_pinbox_free(), which purges pin 2 of trx2 and
|
||||
# places its pointer on trx_sys.rw_trx_hash.hash.alloc.top.
|
||||
insert into t2 values(1);
|
||||
--disable_query_log
|
||||
SET DEBUG_DBUG = @saved_dbug;
|
||||
--enable_query_log
|
||||
|
||||
BEGIN; # trx4
|
||||
# trx_sys.rw_trx_hash.hash.alloc.top points to "freed" trx2 lf_hash element,
|
||||
# lf_alloc_new() gets the pointer from trx_sys.rw_trx_hash.hash.alloc.top,
|
||||
# so the memory for lf_hash element will be reused for trx4 if MDEV-31185 is
|
||||
# not fixed
|
||||
INSERT INTO t2 VALUES(2);
|
||||
|
||||
# let trx2 to invoke DBUG_ASSERT(trx_id == trx->id) and crash if MDEV-31185
|
||||
# is not fixed
|
||||
SET DEBUG_SYNC="now SIGNAL cont2";
|
||||
|
||||
--connection con_1
|
||||
# trx 2 assertion failure if MDEV-31185 is not fixed
|
||||
--reap
|
||||
--disconnect con_1
|
||||
--connection default
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
||||
|
||||
SET DEBUG_SYNC="reset";
|
||||
|
||||
--source include/wait_until_count_sessions.inc
|
@@ -47,7 +47,9 @@ DROP TABLE t2;
|
||||
disconnect con1;
|
||||
|
||||
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
|
||||
--disable_ps2_protocol
|
||||
SELECT * FROM t1;
|
||||
--enable_ps2_protocol
|
||||
XA ROLLBACK 'x';
|
||||
SELECT * FROM t1;
|
||||
|
||||
|
Reference in New Issue
Block a user