mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	Contains also:
       MDEV-10549 mysqld: sql/handler.cc:2692: int handler::ha_index_first(uchar*): Assertion `table_share->tmp_table != NO_TMP_TABLE || m_lock_type != 2' failed. (branch bb-10.2-jan)
       Unlike MySQL, InnoDB still uses THR_LOCK in MariaDB
       MDEV-10548 Some of the debug sync waits do not work with InnoDB 5.7 (branch bb-10.2-jan)
       enable tests that were fixed in MDEV-10549
       MDEV-10548 Some of the debug sync waits do not work with InnoDB 5.7 (branch bb-10.2-jan)
       fix main.innodb_mysql_sync - re-enable online alter for partitioned innodb tables
		
	
		
			
				
	
	
		
			123 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
--echo #
 | 
						|
--echo # This tests the use of large blobs in InnoDB.
 | 
						|
--echo #
 | 
						|
 | 
						|
--source include/have_innodb.inc
 | 
						|
--source include/not_debug.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
 |