1
0
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:
Oleksandr Byelkin
2023-08-05 16:14:46 +02:00
867 changed files with 12543 additions and 6345 deletions

View File

@@ -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;

View File

@@ -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

View 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

View 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;

View File

@@ -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;

View File

@@ -25,7 +25,9 @@ END //
DELIMITER ;//
--disable_ps_protocol
SELECT bug56228();
--enable_ps2_protocol
DROP FUNCTION bug56228;
DROP TEMPORARY TABLE t2_56228;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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

View File

@@ -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;

View File

@@ -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

View File

@@ -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;

View File

@@ -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

View File

@@ -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;

View File

@@ -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;

View File

@@ -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

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View 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

View File

@@ -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;