mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge InnoDB 5.7 from mysql-5.7.9.
Contains also MDEV-10547: Test multi_update_innodb fails with InnoDB 5.7 The failure happened because 5.7 has changed the signature of the bool handler::primary_key_is_clustered() const virtual function ("const" was added). InnoDB was using the old signature which caused the function not to be used. MDEV-10550: Parallel replication lock waits/deadlock handling does not work with InnoDB 5.7 Fixed mutexing problem on lock_trx_handle_wait. Note that rpl_parallel and rpl_optimistic_parallel tests still fail. MDEV-10156 : Group commit tests fail on 10.2 InnoDB (branch bb-10.2-jan) Reason: incorrect merge MDEV-10550: Parallel replication can't sync with master in InnoDB 5.7 (branch bb-10.2-jan) Reason: incorrect merge
This commit is contained in:
122
mysql-test/suite/innodb_zip/t/large_blob.test
Normal file
122
mysql-test/suite/innodb_zip/t/large_blob.test
Normal file
@ -0,0 +1,122 @@
|
||||
--echo #
|
||||
--echo # This tests the use of large blobs in InnoDB.
|
||||
--echo #
|
||||
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_nodebug.inc
|
||||
--source include/big_test.inc
|
||||
|
||||
--disable_query_log
|
||||
# These values can change during the test
|
||||
let $innodb_file_per_table_orig = `SELECT @@innodb_file_per_table`;
|
||||
|
||||
# Create a 20MB blob that does not compress easily.
|
||||
# 1000 Random characters is enough to keep compression low.
|
||||
set @alphabet="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||
set @r=abs(rand()*52) + 1;
|
||||
set @blob=substr(@alphabet,@r,1);
|
||||
let $1=1000;
|
||||
while ($1 > 1)
|
||||
{
|
||||
set @r=abs(rand()*52) + 1;
|
||||
set @letter=substr(@alphabet,@r,1);
|
||||
set @blob=concat(@blob,@letter);
|
||||
dec $1;
|
||||
}
|
||||
# The loop above is extremely slow compared to repeat().
|
||||
set @longblob=repeat(@blob,200000);
|
||||
--enable_query_log
|
||||
|
||||
call mtr.add_suppression("InnoDB: Warning: a long semaphore wait");
|
||||
|
||||
SET GLOBAL innodb_file_per_table = OFF;
|
||||
|
||||
--echo #
|
||||
--echo # System tablespace, Row Format = Redundant
|
||||
--echo #
|
||||
CREATE TABLE t1 (
|
||||
c1 INT DEFAULT NULL,
|
||||
c2 LONGBLOB NOT NULL,
|
||||
KEY k2 (c2(250), c1)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=REDUNDANT;
|
||||
INSERT INTO t1 VALUES (1, '');
|
||||
UPDATE t1 SET c2=@longblob;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # System tablespace, Row Format = Compact
|
||||
--echo #
|
||||
CREATE TABLE t1 (
|
||||
c1 INT DEFAULT NULL,
|
||||
c2 LONGBLOB NOT NULL,
|
||||
KEY k2 (c2(250), c1)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
|
||||
INSERT INTO t1 VALUES (1, '');
|
||||
UPDATE t1 SET c2=@longblob;
|
||||
DROP TABLE t1;
|
||||
|
||||
SET GLOBAL innodb_file_per_table = ON;
|
||||
|
||||
--echo #
|
||||
--echo # Separate tablespace, Row Format = Redundant
|
||||
--echo #
|
||||
CREATE TABLE t1 (
|
||||
c1 INT DEFAULT NULL,
|
||||
c2 LONGBLOB NOT NULL,
|
||||
KEY k2 (c2(250), c1)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=REDUNDANT;
|
||||
INSERT INTO t1 VALUES (1, '');
|
||||
UPDATE t1 SET c2=@longblob;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # Separate tablespace, Row Format = Compact
|
||||
--echo #
|
||||
CREATE TABLE t1 (
|
||||
c1 INT DEFAULT NULL,
|
||||
c2 LONGBLOB NOT NULL,
|
||||
KEY k2 (c2(250), c1)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
|
||||
INSERT INTO t1 VALUES (1, '');
|
||||
UPDATE t1 SET c2=@longblob;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # Separate tablespace, Row Format = Compressed, Key Block Size = 2k
|
||||
--echo #
|
||||
CREATE TABLE t1 (
|
||||
c1 INT DEFAULT NULL,
|
||||
c2 LONGBLOB NOT NULL,
|
||||
KEY k2 (c2(250), c1)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 KEY_BLOCK_SIZE=2;
|
||||
INSERT INTO t1 VALUES (1, '');
|
||||
UPDATE t1 SET c2=@longblob;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # Separate tablespace, Row Format = Compressed, Key Block Size = 1k
|
||||
--echo #
|
||||
CREATE TABLE t1 (
|
||||
c1 INT DEFAULT NULL,
|
||||
c2 LONGBLOB NOT NULL,
|
||||
KEY k2 (c2(250), c1)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 KEY_BLOCK_SIZE=1;
|
||||
INSERT INTO t1 VALUES (1, '');
|
||||
UPDATE t1 SET c2=@longblob;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # Separate tablespace, Row Format = Dynamic
|
||||
--echo #
|
||||
CREATE TABLE t1 (
|
||||
c1 INT DEFAULT NULL,
|
||||
c2 LONGBLOB NOT NULL,
|
||||
KEY k2 (c2(250), c1)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC;
|
||||
INSERT INTO t1 VALUES (1, '');
|
||||
UPDATE t1 SET c2=@longblob;
|
||||
DROP TABLE t1;
|
||||
|
||||
--disable_query_log
|
||||
EVAL SET GLOBAL innodb_file_per_table = $innodb_file_per_table_orig;
|
||||
--enable_query_log
|
Reference in New Issue
Block a user