145 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			145 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | # | ||
|  | # Bug#11766879/Bug#60106: DIFF BETWEEN # OF INDEXES IN MYSQL VS INNODB, | ||
|  | #                         PARTITONING, ON INDEX CREATE | ||
|  | # | ||
|  | call mtr.add_suppression("contains 2 indexes inside InnoDB, which is different from the number of indexes 1 defined in the MySQL"); | ||
|  | CREATE TABLE t1 ( | ||
|  | id bigint NOT NULL AUTO_INCREMENT, | ||
|  | time date, | ||
|  | id2 bigint not null, | ||
|  | PRIMARY KEY (id,time) | ||
|  | ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 | ||
|  | /*!50100 PARTITION BY RANGE(TO_DAYS(time)) | ||
|  | (PARTITION p10 VALUES LESS THAN (734708) ENGINE = InnoDB, | ||
|  | PARTITION p20 VALUES LESS THAN MAXVALUE ENGINE = InnoDB) */; | ||
|  | INSERT INTO t1 (time,id2) VALUES ('2011-07-24',1); | ||
|  | INSERT INTO t1 (time,id2) VALUES ('2011-07-25',1); | ||
|  | INSERT INTO t1 (time,id2) VALUES ('2011-07-25',1); | ||
|  | CREATE UNIQUE INDEX uk_time_id2 on t1(time,id2); | ||
|  | ERROR 23000: Duplicate entry '2011-07-25-1' for key 'uk_time_id2' | ||
|  | SELECT COUNT(*) FROM t1; | ||
|  | COUNT(*) | ||
|  | 3 | ||
|  | DROP TABLE t1; | ||
|  | call mtr.add_suppression("nnoDB: Error: table `test`.`t1` .* Partition.* InnoDB internal"); | ||
|  | # | ||
|  | # Bug#55091: Server crashes on ADD PARTITION after a failed attempt | ||
|  | # | ||
|  | SET @old_innodb_file_format = @@global.innodb_file_format; | ||
|  | SET @old_innodb_file_per_table = @@global.innodb_file_per_table; | ||
|  | SET @old_innodb_strict_mode = @@global.innodb_strict_mode; | ||
|  | SET @@global.innodb_file_format = Barracuda, | ||
|  | @@global.innodb_file_per_table = ON, | ||
|  | @@global.innodb_strict_mode = ON; | ||
|  | # Connection con1 | ||
|  | CREATE TABLE t1 (id INT NOT NULL | ||
|  | PRIMARY KEY, | ||
|  | user_num CHAR(10) | ||
|  | ) ENGINE = InnoDB | ||
|  | KEY_BLOCK_SIZE=4 | ||
|  | PARTITION BY HASH(id) PARTITIONS 1; | ||
|  | t1#P#p0.ibd | ||
|  | t1.frm | ||
|  | t1.par | ||
|  | SHOW CREATE TABLE t1; | ||
|  | Table	Create Table | ||
|  | t1	CREATE TABLE `t1` ( | ||
|  |   `id` int(11) NOT NULL, | ||
|  |   `user_num` char(10) DEFAULT NULL, | ||
|  |   PRIMARY KEY (`id`) | ||
|  | ) ENGINE=InnoDB DEFAULT CHARSET=latin1 KEY_BLOCK_SIZE=4 | ||
|  | /*!50100 PARTITION BY HASH (id) | ||
|  | PARTITIONS 1 */ | ||
|  | SET GLOBAL innodb_file_per_table = OFF; | ||
|  | # Connection con2 | ||
|  | LOCK TABLE t1 WRITE; | ||
|  | # ALTER fails because COMPRESSED/KEY_BLOCK_SIZE | ||
|  | # are incompatible with innodb_file_per_table = OFF; | ||
|  | ALTER TABLE t1 ADD PARTITION PARTITIONS 1; | ||
|  | ERROR HY000: Got error 1478 from storage engine | ||
|  | t1#P#p0.ibd | ||
|  | t1.frm | ||
|  | t1.par | ||
|  | # This SET is not needed to reproduce the bug, | ||
|  | # it is here just to make the test case more realistic | ||
|  | SET innodb_strict_mode = OFF; | ||
|  | ALTER TABLE t1 ADD PARTITION PARTITIONS 2; | ||
|  | Warnings: | ||
|  | Warning	1478	InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table. | ||
|  | Warning	1478	InnoDB: ignoring KEY_BLOCK_SIZE=4. | ||
|  | Warning	1478	InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table. | ||
|  | Warning	1478	InnoDB: ignoring KEY_BLOCK_SIZE=4. | ||
|  | Warning	1478	InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table. | ||
|  | Warning	1478	InnoDB: ignoring KEY_BLOCK_SIZE=4. | ||
|  | t1.frm | ||
|  | t1.par | ||
|  | ALTER TABLE t1 REBUILD PARTITION p0; | ||
|  | Warnings: | ||
|  | Warning	1478	InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table. | ||
|  | Warning	1478	InnoDB: ignoring KEY_BLOCK_SIZE=4. | ||
|  | UNLOCK TABLES; | ||
|  | SHOW CREATE TABLE t1; | ||
|  | Table	Create Table | ||
|  | t1	CREATE TABLE `t1` ( | ||
|  |   `id` int(11) NOT NULL, | ||
|  |   `user_num` char(10) DEFAULT NULL, | ||
|  |   PRIMARY KEY (`id`) | ||
|  | ) ENGINE=InnoDB DEFAULT CHARSET=latin1 KEY_BLOCK_SIZE=4 | ||
|  | /*!50100 PARTITION BY HASH (id) | ||
|  | PARTITIONS 3 */ | ||
|  | DROP TABLE t1; | ||
|  | # Connection default | ||
|  | SET @@global.innodb_strict_mode = @old_innodb_strict_mode; | ||
|  | SET @@global.innodb_file_format = @old_innodb_file_format; | ||
|  | SET @@global.innodb_file_per_table = @old_innodb_file_per_table; | ||
|  | SET NAMES utf8; | ||
|  | CREATE TABLE `t``\""e` (a INT, PRIMARY KEY (a)) | ||
|  | ENGINE=InnoDB | ||
|  | PARTITION BY RANGE (a) | ||
|  | SUBPARTITION BY HASH (a) | ||
|  | (PARTITION `p0``\""e` VALUES LESS THAN (100) | ||
|  | (SUBPARTITION `sp0``\""e`, | ||
|  | SUBPARTITION `sp1``\""e`), | ||
|  | PARTITION `p1``\""e` VALUES LESS THAN (MAXVALUE) | ||
|  | (SUBPARTITION `sp2``\""e`, | ||
|  | SUBPARTITION `sp3``\""e`)); | ||
|  | INSERT INTO `t``\""e` VALUES (0), (2), (6), (10), (14), (18), (22); | ||
|  | START TRANSACTION; | ||
|  | # con1 | ||
|  | SET NAMES utf8; | ||
|  | START TRANSACTION; | ||
|  | # default connection | ||
|  | UPDATE `t``\""e` SET a = 16 WHERE a = 0; | ||
|  | # con1 | ||
|  | UPDATE `t``\""e` SET a = 8 WHERE a = 22; | ||
|  | UPDATE `t``\""e` SET a = 12 WHERE a = 0; | ||
|  | # default connection | ||
|  | SELECT lock_table, COUNT(*) FROM INFORMATION_SCHEMA.INNODB_LOCKS | ||
|  | GROUP BY lock_table; | ||
|  | lock_table	COUNT(*) | ||
|  | `test`.`t``\""e` /* Partition `p0``\""e`, Subpartition `sp0``\""e` */	2 | ||
|  | set @old_sql_mode = @@sql_mode; | ||
|  | set sql_mode = 'ANSI_QUOTES'; | ||
|  | SELECT lock_table, COUNT(*) FROM INFORMATION_SCHEMA.INNODB_LOCKS | ||
|  | GROUP BY lock_table; | ||
|  | lock_table	COUNT(*) | ||
|  | "test"."t`\""""e" /* Partition "p0`\""""e", Subpartition "sp0`\""""e" */	2 | ||
|  | set @@sql_mode = @old_sql_mode; | ||
|  | UPDATE `t``\""e` SET a = 4 WHERE a = 22; | ||
|  | ERROR 40001: Deadlock found when trying to get lock; try restarting transaction | ||
|  | # First table reported in 'SHOW ENGINE InnoDB STATUS' | ||
|  | SHOW ENGINE InnoDB STATUS; | ||
|  | Type	Name	Status | ||
|  | InnoDB		index `PRIMARY` of table `test`.`t``\""e` /* Partition `p0``\""e`, Subpartition `sp0``\""e` */ | ||
|  | set @old_sql_mode = @@sql_mode; | ||
|  | set sql_mode = 'ANSI_QUOTES'; | ||
|  | SHOW ENGINE InnoDB STATUS; | ||
|  | Type	Name	Status | ||
|  | InnoDB		index `PRIMARY` of table `test`.`t``\""e` /* Partition `p0``\""e`, Subpartition `sp0``\""e` */ | ||
|  | set @@sql_mode = @old_sql_mode; | ||
|  | # con1 | ||
|  | ROLLBACK; | ||
|  | # default connection | ||
|  | DROP TABLE `t``\""e`; | ||
|  | SET NAMES DEFAULT; |