mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-04 04:46:15 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			162 lines
		
	
	
	
		
			5.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			162 lines
		
	
	
	
		
			5.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
call mtr.add_suppression("InnoDB: Table .* does not exist in the InnoDB internal data dictionary .*");
 | 
						|
call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction");
 | 
						|
#
 | 
						|
# Bug#11766879/Bug#60106: DIFF BETWEEN # OF INDEXES IN MYSQL VS INNODB,
 | 
						|
#                         PARTITONING, ON INDEX CREATE
 | 
						|
# Bug#12696518: MEMORY LEAKS IN HA_PARTITION (VALGRIND TESTS ON TRUNK)
 | 
						|
#
 | 
						|
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
 | 
						|
SHOW CREATE TABLE t1;
 | 
						|
Table	Create Table
 | 
						|
t1	CREATE TABLE `t1` (
 | 
						|
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
 | 
						|
  `time` date NOT NULL,
 | 
						|
  `id2` bigint(20) NOT NULL,
 | 
						|
  PRIMARY KEY (`id`,`time`)
 | 
						|
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
 | 
						|
 PARTITION BY RANGE (to_days(`time`))
 | 
						|
(PARTITION `p10` VALUES LESS THAN (734708) ENGINE = InnoDB,
 | 
						|
 PARTITION `p20` VALUES LESS THAN MAXVALUE ENGINE = InnoDB)
 | 
						|
DROP TABLE t1;
 | 
						|
call mtr.add_suppression("InnoDB: Error: table `test`.`t1` .* InnoDB internal");
 | 
						|
#
 | 
						|
# Bug#55091: Server crashes on ADD PARTITION after a failed attempt
 | 
						|
#
 | 
						|
SET @old_innodb_file_per_table = @@global.innodb_file_per_table;
 | 
						|
SET @old_innodb_strict_mode = @@global.innodb_strict_mode;
 | 
						|
SET @@global.innodb_file_per_table = ON,
 | 
						|
@@global.innodb_strict_mode = ON;
 | 
						|
connect con1,localhost,root,,;
 | 
						|
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 COLLATE=latin1_swedish_ci KEY_BLOCK_SIZE=4
 | 
						|
 PARTITION BY HASH (`id`)
 | 
						|
PARTITIONS 1
 | 
						|
SET GLOBAL innodb_file_per_table = OFF;
 | 
						|
disconnect con1;
 | 
						|
connect con2,localhost,root,,;
 | 
						|
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 140 "Wrong create options" from storage engine InnoDB
 | 
						|
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 COLLATE=latin1_swedish_ci KEY_BLOCK_SIZE=4
 | 
						|
 PARTITION BY HASH (`id`)
 | 
						|
PARTITIONS 3
 | 
						|
DROP TABLE t1;
 | 
						|
disconnect con2;
 | 
						|
connection default;
 | 
						|
SET @@global.innodb_strict_mode = @old_innodb_strict_mode;
 | 
						|
SET @@global.innodb_file_per_table = @old_innodb_file_per_table;
 | 
						|
SET @save_detect= @@GLOBAL.innodb_deadlock_detect;
 | 
						|
SET @save_report= @@GLOBAL.innodb_deadlock_report;
 | 
						|
SET GLOBAL innodb_deadlock_detect=ON;
 | 
						|
SET GLOBAL innodb_deadlock_report=BASIC;
 | 
						|
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;
 | 
						|
connect con1,localhost,root,,;
 | 
						|
SET NAMES utf8;
 | 
						|
START TRANSACTION;
 | 
						|
connection default;
 | 
						|
UPDATE `t``\""e` SET a = 16 WHERE a = 0;
 | 
						|
connection con1;
 | 
						|
UPDATE `t``\""e` SET a = 8 WHERE a = 22;
 | 
						|
UPDATE `t``\""e` SET a = 12 WHERE a = 0;
 | 
						|
connection default;
 | 
						|
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 GLOBAL innodb_deadlock_detect= @save_detect;
 | 
						|
SET GLOBAL innodb_deadlock_report= @save_report;
 | 
						|
set @@sql_mode = @old_sql_mode;
 | 
						|
connection con1;
 | 
						|
ROLLBACK;
 | 
						|
disconnect con1;
 | 
						|
connection default;
 | 
						|
DROP TABLE `t``\""e`;
 |