Browse Source
Remove outdated InnoDB Plugin tests from mysql-test/suite/innodb,
Remove outdated InnoDB Plugin tests from mysql-test/suite/innodb,
the InnoDB Plugin tests are now in mysql-test/suite/innodb_plugin. Move InnoDB tests to the innodb suite at mysql-test/suite/innodb.pull/374/head
92 changed files with 3 additions and 4865 deletions
-
4mysql-test/suite/innodb/include/have_innodb_plugin.inc
-
26mysql-test/suite/innodb/include/innodb-index.inc
-
2mysql-test/suite/innodb/r/innodb-analyze.result
-
4mysql-test/suite/innodb/r/innodb-autoinc-44030.result
-
0mysql-test/suite/innodb/r/innodb-autoinc.result
-
35mysql-test/suite/innodb/r/innodb-consistent.result
-
1172mysql-test/suite/innodb/r/innodb-index.result
-
116mysql-test/suite/innodb/r/innodb-index_ucs2.result
-
0mysql-test/suite/innodb/r/innodb-lock.result
-
0mysql-test/suite/innodb/r/innodb-replace.result
-
0mysql-test/suite/innodb/r/innodb-semi-consistent.result
-
38mysql-test/suite/innodb/r/innodb-timeout.result
-
48mysql-test/suite/innodb/r/innodb-use-sys-malloc.result
-
421mysql-test/suite/innodb/r/innodb-zip.result
-
0mysql-test/suite/innodb/r/innodb.result
-
0mysql-test/suite/innodb/r/innodb_bug21704.result
-
0mysql-test/suite/innodb/r/innodb_bug34053.result
-
0mysql-test/suite/innodb/r/innodb_bug34300.result
-
0mysql-test/suite/innodb/r/innodb_bug35220.result
-
2mysql-test/suite/innodb/r/innodb_bug36169.result
-
1mysql-test/suite/innodb/r/innodb_bug36172.result
-
0mysql-test/suite/innodb/r/innodb_bug38231.result
-
0mysql-test/suite/innodb/r/innodb_bug39438.result
-
4mysql-test/suite/innodb/r/innodb_bug40360.result
-
0mysql-test/suite/innodb/r/innodb_bug40565.result
-
4mysql-test/suite/innodb/r/innodb_bug41904.result
-
0mysql-test/suite/innodb/r/innodb_bug42101-nonzero.result
-
0mysql-test/suite/innodb/r/innodb_bug42101.result
-
7mysql-test/suite/innodb/r/innodb_bug44032.result
-
0mysql-test/suite/innodb/r/innodb_bug44369.result
-
8mysql-test/suite/innodb/r/innodb_bug44571.result
-
0mysql-test/suite/innodb/r/innodb_bug45357.result
-
0mysql-test/suite/innodb/r/innodb_bug46000.result
-
9mysql-test/suite/innodb/r/innodb_bug46676.result
-
24mysql-test/suite/innodb/r/innodb_bug47167.result
-
0mysql-test/suite/innodb/r/innodb_bug47621.result
-
23mysql-test/suite/innodb/r/innodb_bug47622.result
-
0mysql-test/suite/innodb/r/innodb_bug47777.result
-
66mysql-test/suite/innodb/r/innodb_bug51378.result
-
0mysql-test/suite/innodb/r/innodb_bug51920.result
-
43mysql-test/suite/innodb/r/innodb_file_format.result
-
23mysql-test/suite/innodb/r/innodb_information_schema.result
-
0mysql-test/suite/innodb/r/innodb_trx_weight.result
-
1mysql-test/suite/innodb/t/disabled.def
-
66mysql-test/suite/innodb/t/innodb-analyze.test
-
2mysql-test/suite/innodb/t/innodb-autoinc-44030.test
-
0mysql-test/suite/innodb/t/innodb-autoinc.test
-
1mysql-test/suite/innodb/t/innodb-consistent-master.opt
-
59mysql-test/suite/innodb/t/innodb-consistent.test
-
550mysql-test/suite/innodb/t/innodb-index.test
-
5mysql-test/suite/innodb/t/innodb-index_ucs2.test
-
0mysql-test/suite/innodb/t/innodb-lock.test
-
0mysql-test/suite/innodb/t/innodb-master.opt
-
0mysql-test/suite/innodb/t/innodb-replace.test
-
0mysql-test/suite/innodb/t/innodb-semi-consistent-master.opt
-
0mysql-test/suite/innodb/t/innodb-semi-consistent.test
-
65mysql-test/suite/innodb/t/innodb-timeout.test
-
2mysql-test/suite/innodb/t/innodb-use-sys-malloc-master.opt
-
49mysql-test/suite/innodb/t/innodb-use-sys-malloc.test
-
344mysql-test/suite/innodb/t/innodb-zip.test
-
0mysql-test/suite/innodb/t/innodb.test
-
0mysql-test/suite/innodb/t/innodb_bug21704.test
-
0mysql-test/suite/innodb/t/innodb_bug34053.test
-
0mysql-test/suite/innodb/t/innodb_bug34300.test
-
0mysql-test/suite/innodb/t/innodb_bug35220.test
-
1159mysql-test/suite/innodb/t/innodb_bug36169.test
-
31mysql-test/suite/innodb/t/innodb_bug36172.test
-
0mysql-test/suite/innodb/t/innodb_bug38231.test
-
0mysql-test/suite/innodb/t/innodb_bug39438-master.opt
-
0mysql-test/suite/innodb/t/innodb_bug39438.test
-
16mysql-test/suite/innodb/t/innodb_bug40360.test
-
0mysql-test/suite/innodb/t/innodb_bug40565.test
-
14mysql-test/suite/innodb/t/innodb_bug41904.test
-
0mysql-test/suite/innodb/t/innodb_bug42101-nonzero-master.opt
-
0mysql-test/suite/innodb/t/innodb_bug42101-nonzero.test
-
0mysql-test/suite/innodb/t/innodb_bug42101.test
-
13mysql-test/suite/innodb/t/innodb_bug44032.test
-
0mysql-test/suite/innodb/t/innodb_bug44369.test
-
23mysql-test/suite/innodb/t/innodb_bug44571.test
-
0mysql-test/suite/innodb/t/innodb_bug45357.test
-
0mysql-test/suite/innodb/t/innodb_bug46000.test
-
16mysql-test/suite/innodb/t/innodb_bug46676.test
-
46mysql-test/suite/innodb/t/innodb_bug47167.test
-
0mysql-test/suite/innodb/t/innodb_bug47621.test
-
55mysql-test/suite/innodb/t/innodb_bug47622.test
-
0mysql-test/suite/innodb/t/innodb_bug47777.test
-
77mysql-test/suite/innodb/t/innodb_bug51378.test
-
0mysql-test/suite/innodb/t/innodb_bug51920.test
-
43mysql-test/suite/innodb/t/innodb_file_format.test
-
150mysql-test/suite/innodb/t/innodb_information_schema.test
-
0mysql-test/suite/innodb/t/innodb_trx_weight.test
-
1mysql-test/t/disabled.def
@ -1,4 +0,0 @@ |
|||
disable_query_log; |
|||
--require r/true.require |
|||
select (PLUGIN_LIBRARY LIKE 'ha_innodb_plugin%') as `TRUE` from information_schema.plugins where PLUGIN_NAME='InnoDB'; |
|||
enable_query_log; |
|||
@ -1,26 +0,0 @@ |
|||
--eval create table t1(a int not null, b int, c char(10), d varchar(20), primary key (a)) engine = innodb default charset=$charset |
|||
insert into t1 values (1,1,'ab','ab'),(2,2,'ac','ac'),(3,2,'ad','ad'),(4,4,'afe','afe'); |
|||
commit; |
|||
--error ER_DUP_ENTRY |
|||
alter table t1 add unique index (b); |
|||
insert into t1 values(8,9,'fff','fff'); |
|||
select * from t1; |
|||
show create table t1; |
|||
alter table t1 add index (b); |
|||
insert into t1 values(10,10,'kkk','iii'); |
|||
select * from t1; |
|||
select * from t1 force index(b) order by b; |
|||
explain select * from t1 force index(b) order by b; |
|||
show create table t1; |
|||
alter table t1 add unique index (c), add index (d); |
|||
insert into t1 values(11,11,'aaa','mmm'); |
|||
select * from t1; |
|||
select * from t1 force index(b) order by b; |
|||
select * from t1 force index(c) order by c; |
|||
select * from t1 force index(d) order by d; |
|||
explain select * from t1 force index(b) order by b; |
|||
explain select * from t1 force index(c) order by c; |
|||
explain select * from t1 force index(d) order by d; |
|||
show create table t1; |
|||
check table t1; |
|||
drop table t1; |
|||
@ -1,2 +0,0 @@ |
|||
Variable_name Value |
|||
innodb_stats_sample_pages 1 |
|||
@ -1,35 +0,0 @@ |
|||
drop table if exists t1; |
|||
set session transaction isolation level read committed; |
|||
create table t1(a int not null) engine=innodb DEFAULT CHARSET=latin1; |
|||
create table t2 like t1; |
|||
insert into t2 values (1),(2),(3),(4),(5),(6),(7); |
|||
set autocommit=0; |
|||
begin; |
|||
replace into t1 select * from t2; |
|||
set session transaction isolation level read committed; |
|||
set autocommit=0; |
|||
delete from t2 where a=5; |
|||
commit; |
|||
delete from t2; |
|||
commit; |
|||
commit; |
|||
begin; |
|||
insert into t1 select * from t2; |
|||
set session transaction isolation level read committed; |
|||
set autocommit=0; |
|||
delete from t2 where a=5; |
|||
commit; |
|||
delete from t2; |
|||
commit; |
|||
commit; |
|||
select * from t1; |
|||
a |
|||
1 |
|||
2 |
|||
3 |
|||
4 |
|||
5 |
|||
6 |
|||
7 |
|||
drop table t1; |
|||
drop table t2; |
|||
1172
mysql-test/suite/innodb/r/innodb-index.result
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1,116 +0,0 @@ |
|||
create table t1(a int not null, b int, c char(10), d varchar(20), primary key (a)) engine = innodb default charset=ucs2; |
|||
insert into t1 values (1,1,'ab','ab'),(2,2,'ac','ac'),(3,2,'ad','ad'),(4,4,'afe','afe'); |
|||
commit; |
|||
alter table t1 add unique index (b); |
|||
ERROR 23000: Duplicate entry '2' for key 'b' |
|||
insert into t1 values(8,9,'fff','fff'); |
|||
select * from t1; |
|||
a b c d |
|||
1 1 ab ab |
|||
2 2 ac ac |
|||
3 2 ad ad |
|||
4 4 afe afe |
|||
8 9 fff fff |
|||
show create table t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`a` int(11) NOT NULL, |
|||
`b` int(11) DEFAULT NULL, |
|||
`c` char(10) DEFAULT NULL, |
|||
`d` varchar(20) DEFAULT NULL, |
|||
PRIMARY KEY (`a`) |
|||
) ENGINE=InnoDB DEFAULT CHARSET=ucs2 |
|||
alter table t1 add index (b); |
|||
insert into t1 values(10,10,'kkk','iii'); |
|||
select * from t1; |
|||
a b c d |
|||
1 1 ab ab |
|||
2 2 ac ac |
|||
3 2 ad ad |
|||
4 4 afe afe |
|||
8 9 fff fff |
|||
10 10 kkk iii |
|||
select * from t1 force index(b) order by b; |
|||
a b c d |
|||
1 1 ab ab |
|||
2 2 ac ac |
|||
3 2 ad ad |
|||
4 4 afe afe |
|||
8 9 fff fff |
|||
10 10 kkk iii |
|||
explain select * from t1 force index(b) order by b; |
|||
id select_type table type possible_keys key key_len ref rows Extra |
|||
1 SIMPLE t1 index NULL b 5 NULL 6 |
|||
show create table t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`a` int(11) NOT NULL, |
|||
`b` int(11) DEFAULT NULL, |
|||
`c` char(10) DEFAULT NULL, |
|||
`d` varchar(20) DEFAULT NULL, |
|||
PRIMARY KEY (`a`), |
|||
KEY `b` (`b`) |
|||
) ENGINE=InnoDB DEFAULT CHARSET=ucs2 |
|||
alter table t1 add unique index (c), add index (d); |
|||
insert into t1 values(11,11,'aaa','mmm'); |
|||
select * from t1; |
|||
a b c d |
|||
1 1 ab ab |
|||
2 2 ac ac |
|||
3 2 ad ad |
|||
4 4 afe afe |
|||
8 9 fff fff |
|||
10 10 kkk iii |
|||
11 11 aaa mmm |
|||
select * from t1 force index(b) order by b; |
|||
a b c d |
|||
1 1 ab ab |
|||
2 2 ac ac |
|||
3 2 ad ad |
|||
4 4 afe afe |
|||
8 9 fff fff |
|||
10 10 kkk iii |
|||
11 11 aaa mmm |
|||
select * from t1 force index(c) order by c; |
|||
a b c d |
|||
11 11 aaa mmm |
|||
1 1 ab ab |
|||
2 2 ac ac |
|||
3 2 ad ad |
|||
4 4 afe afe |
|||
8 9 fff fff |
|||
10 10 kkk iii |
|||
select * from t1 force index(d) order by d; |
|||
a b c d |
|||
1 1 ab ab |
|||
2 2 ac ac |
|||
3 2 ad ad |
|||
4 4 afe afe |
|||
8 9 fff fff |
|||
10 10 kkk iii |
|||
11 11 aaa mmm |
|||
explain select * from t1 force index(b) order by b; |
|||
id select_type table type possible_keys key key_len ref rows Extra |
|||
1 SIMPLE t1 index NULL b 5 NULL 7 |
|||
explain select * from t1 force index(c) order by c; |
|||
id select_type table type possible_keys key key_len ref rows Extra |
|||
1 SIMPLE t1 index NULL c 21 NULL 7 |
|||
explain select * from t1 force index(d) order by d; |
|||
id select_type table type possible_keys key key_len ref rows Extra |
|||
1 SIMPLE t1 index NULL d 43 NULL 7 |
|||
show create table t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`a` int(11) NOT NULL, |
|||
`b` int(11) DEFAULT NULL, |
|||
`c` char(10) DEFAULT NULL, |
|||
`d` varchar(20) DEFAULT NULL, |
|||
PRIMARY KEY (`a`), |
|||
UNIQUE KEY `c` (`c`), |
|||
KEY `b` (`b`), |
|||
KEY `d` (`d`) |
|||
) ENGINE=InnoDB DEFAULT CHARSET=ucs2 |
|||
check table t1; |
|||
Table Op Msg_type Msg_text |
|||
test.t1 check status OK |
|||
drop table t1; |
|||
@ -1,38 +0,0 @@ |
|||
set global innodb_lock_wait_timeout=42; |
|||
select @@innodb_lock_wait_timeout; |
|||
@@innodb_lock_wait_timeout |
|||
42 |
|||
set innodb_lock_wait_timeout=1; |
|||
select @@innodb_lock_wait_timeout; |
|||
@@innodb_lock_wait_timeout |
|||
1 |
|||
select @@innodb_lock_wait_timeout; |
|||
@@innodb_lock_wait_timeout |
|||
42 |
|||
set global innodb_lock_wait_timeout=347; |
|||
select @@innodb_lock_wait_timeout; |
|||
@@innodb_lock_wait_timeout |
|||
42 |
|||
set innodb_lock_wait_timeout=1; |
|||
select @@innodb_lock_wait_timeout; |
|||
@@innodb_lock_wait_timeout |
|||
1 |
|||
select @@innodb_lock_wait_timeout; |
|||
@@innodb_lock_wait_timeout |
|||
347 |
|||
create table t1(a int primary key)engine=innodb; |
|||
begin; |
|||
insert into t1 values(1),(2),(3); |
|||
select * from t1 for update; |
|||
commit; |
|||
a |
|||
1 |
|||
2 |
|||
3 |
|||
begin; |
|||
insert into t1 values(4); |
|||
select * from t1 for update; |
|||
commit; |
|||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction |
|||
drop table t1; |
|||
set global innodb_lock_wait_timeout=50; |
|||
@ -1,48 +0,0 @@ |
|||
SELECT @@GLOBAL.innodb_use_sys_malloc; |
|||
@@GLOBAL.innodb_use_sys_malloc |
|||
1 |
|||
1 Expected |
|||
SET @@GLOBAL.innodb_use_sys_malloc=0; |
|||
ERROR HY000: Variable 'innodb_use_sys_malloc' is a read only variable |
|||
Expected error 'Read only variable' |
|||
SELECT @@GLOBAL.innodb_use_sys_malloc; |
|||
@@GLOBAL.innodb_use_sys_malloc |
|||
1 |
|||
1 Expected |
|||
drop table if exists t1; |
|||
create table t1(a int not null) engine=innodb DEFAULT CHARSET=latin1; |
|||
insert into t1 values (1),(2),(3),(4),(5),(6),(7); |
|||
select * from t1; |
|||
a |
|||
1 |
|||
2 |
|||
3 |
|||
4 |
|||
5 |
|||
6 |
|||
7 |
|||
drop table t1; |
|||
SELECT @@GLOBAL.innodb_use_sys_malloc; |
|||
@@GLOBAL.innodb_use_sys_malloc |
|||
1 |
|||
1 Expected |
|||
SET @@GLOBAL.innodb_use_sys_malloc=0; |
|||
ERROR HY000: Variable 'innodb_use_sys_malloc' is a read only variable |
|||
Expected error 'Read only variable' |
|||
SELECT @@GLOBAL.innodb_use_sys_malloc; |
|||
@@GLOBAL.innodb_use_sys_malloc |
|||
1 |
|||
1 Expected |
|||
drop table if exists t1; |
|||
create table t1(a int not null) engine=innodb DEFAULT CHARSET=latin1; |
|||
insert into t1 values (1),(2),(3),(4),(5),(6),(7); |
|||
select * from t1; |
|||
a |
|||
1 |
|||
2 |
|||
3 |
|||
4 |
|||
5 |
|||
6 |
|||
7 |
|||
drop table t1; |
|||
@ -1,421 +0,0 @@ |
|||
set global innodb_file_per_table=off; |
|||
set global innodb_file_format=`0`; |
|||
create table t0(a int primary key) engine=innodb row_format=compressed; |
|||
Warnings: |
|||
Warning 1478 InnoDB: ROW_FORMAT=COMPRESSED requires innodb_file_per_table. |
|||
Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT. |
|||
create table t00(a int primary key) engine=innodb |
|||
key_block_size=4 row_format=compressed; |
|||
Warnings: |
|||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table. |
|||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_format > Antelope. |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=4. |
|||
Warning 1478 InnoDB: ROW_FORMAT=COMPRESSED requires innodb_file_per_table. |
|||
Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT. |
|||
create table t1(a int primary key) engine=innodb row_format=dynamic; |
|||
Warnings: |
|||
Warning 1478 InnoDB: ROW_FORMAT=DYNAMIC requires innodb_file_per_table. |
|||
Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT. |
|||
create table t2(a int primary key) engine=innodb row_format=redundant; |
|||
create table t3(a int primary key) engine=innodb row_format=compact; |
|||
create table t4(a int primary key) engine=innodb key_block_size=9; |
|||
Warnings: |
|||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table. |
|||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_format > Antelope. |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=9. |
|||
create table t5(a int primary key) engine=innodb |
|||
key_block_size=1 row_format=redundant; |
|||
Warnings: |
|||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table. |
|||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_format > Antelope. |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=1. |
|||
set global innodb_file_per_table=on; |
|||
create table t6(a int primary key) engine=innodb |
|||
key_block_size=1 row_format=redundant; |
|||
Warnings: |
|||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_format > Antelope. |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=1. |
|||
set global innodb_file_format=`1`; |
|||
create table t7(a int primary key) engine=innodb |
|||
key_block_size=1 row_format=redundant; |
|||
Warnings: |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=1 unless ROW_FORMAT=COMPRESSED. |
|||
create table t8(a int primary key) engine=innodb |
|||
key_block_size=1 row_format=fixed; |
|||
Warnings: |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=1 unless ROW_FORMAT=COMPRESSED. |
|||
Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT. |
|||
create table t9(a int primary key) engine=innodb |
|||
key_block_size=1 row_format=compact; |
|||
Warnings: |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=1 unless ROW_FORMAT=COMPRESSED. |
|||
create table t10(a int primary key) engine=innodb |
|||
key_block_size=1 row_format=dynamic; |
|||
Warnings: |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=1 unless ROW_FORMAT=COMPRESSED. |
|||
create table t11(a int primary key) engine=innodb |
|||
key_block_size=1 row_format=compressed; |
|||
create table t12(a int primary key) engine=innodb |
|||
key_block_size=1; |
|||
create table t13(a int primary key) engine=innodb |
|||
row_format=compressed; |
|||
create table t14(a int primary key) engine=innodb key_block_size=9; |
|||
Warnings: |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=9. |
|||
SELECT table_schema, table_name, row_format |
|||
FROM information_schema.tables WHERE engine='innodb'; |
|||
table_schema table_name row_format |
|||
test t0 Compact |
|||
test t00 Compact |
|||
test t1 Compact |
|||
test t10 Dynamic |
|||
test t11 Compressed |
|||
test t12 Compressed |
|||
test t13 Compressed |
|||
test t14 Compact |
|||
test t2 Redundant |
|||
test t3 Compact |
|||
test t4 Compact |
|||
test t5 Redundant |
|||
test t6 Redundant |
|||
test t7 Redundant |
|||
test t8 Compact |
|||
test t9 Compact |
|||
drop table t0,t00,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14; |
|||
alter table t1 key_block_size=0; |
|||
Warnings: |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=0. |
|||
alter table t1 row_format=dynamic; |
|||
SELECT table_schema, table_name, row_format |
|||
FROM information_schema.tables WHERE engine='innodb'; |
|||
table_schema table_name row_format |
|||
test t1 Dynamic |
|||
alter table t1 row_format=compact; |
|||
SELECT table_schema, table_name, row_format |
|||
FROM information_schema.tables WHERE engine='innodb'; |
|||
table_schema table_name row_format |
|||
test t1 Compact |
|||
alter table t1 row_format=redundant; |
|||
SELECT table_schema, table_name, row_format |
|||
FROM information_schema.tables WHERE engine='innodb'; |
|||
table_schema table_name row_format |
|||
test t1 Redundant |
|||
drop table t1; |
|||
create table t1(a int not null, b text, index(b(10))) engine=innodb |
|||
key_block_size=1; |
|||
create table t2(b text)engine=innodb; |
|||
insert into t2 values(concat('1abcdefghijklmnopqrstuvwxyz', repeat('A',5000))); |
|||
insert into t1 select 1, b from t2; |
|||
commit; |
|||
begin; |
|||
update t1 set b=repeat('B',100); |
|||
select a,left(b,40) from t1 natural join t2; |
|||
a left(b,40) |
|||
1 1abcdefghijklmnopqrstuvwxyzAAAAAAAAAAAAA |
|||
rollback; |
|||
select a,left(b,40) from t1 natural join t2; |
|||
a left(b,40) |
|||
1 1abcdefghijklmnopqrstuvwxyzAAAAAAAAAAAAA |
|||
SELECT table_schema, table_name, row_format |
|||
FROM information_schema.tables WHERE engine='innodb'; |
|||
table_schema table_name row_format |
|||
test t1 Compressed |
|||
test t2 Compact |
|||
drop table t1,t2; |
|||
SET SESSION innodb_strict_mode = off; |
|||
CREATE TABLE t1( |
|||
c TEXT NOT NULL, d TEXT NOT NULL, |
|||
PRIMARY KEY (c(767),d(767))) |
|||
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII; |
|||
ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. You have to change some columns to TEXT or BLOBs |
|||
CREATE TABLE t1( |
|||
c TEXT NOT NULL, d TEXT NOT NULL, |
|||
PRIMARY KEY (c(767),d(767))) |
|||
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=2 CHARSET=ASCII; |
|||
ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. You have to change some columns to TEXT or BLOBs |
|||
CREATE TABLE t1( |
|||
c TEXT NOT NULL, d TEXT NOT NULL, |
|||
PRIMARY KEY (c(767),d(767))) |
|||
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4 CHARSET=ASCII; |
|||
drop table t1; |
|||
CREATE TABLE t1(c TEXT, PRIMARY KEY (c(440))) |
|||
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII; |
|||
ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. You have to change some columns to TEXT or BLOBs |
|||
CREATE TABLE t1(c TEXT, PRIMARY KEY (c(438))) |
|||
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII; |
|||
INSERT INTO t1 VALUES(REPEAT('A',512)),(REPEAT('B',512)); |
|||
DROP TABLE t1; |
|||
create table t1( c1 int not null, c2 blob, c3 blob, c4 blob, |
|||
primary key(c1, c2(22), c3(22))) |
|||
engine = innodb row_format = dynamic; |
|||
begin; |
|||
insert into t1 values(1, repeat('A', 20000), repeat('B', 20000), |
|||
repeat('C', 20000)); |
|||
update t1 set c3 = repeat('D', 20000) where c1 = 1; |
|||
commit; |
|||
select count(*) from t1 where c2 = repeat('A', 20000); |
|||
count(*) |
|||
1 |
|||
select count(*) from t1 where c3 = repeat('D', 20000); |
|||
count(*) |
|||
1 |
|||
select count(*) from t1 where c4 = repeat('C', 20000); |
|||
count(*) |
|||
1 |
|||
update t1 set c3 = repeat('E', 20000) where c1 = 1; |
|||
drop table t1; |
|||
set global innodb_file_format=`0`; |
|||
select @@innodb_file_format; |
|||
@@innodb_file_format |
|||
Antelope |
|||
set global innodb_file_format=`1`; |
|||
select @@innodb_file_format; |
|||
@@innodb_file_format |
|||
Barracuda |
|||
set global innodb_file_format=`2`; |
|||
ERROR HY000: Incorrect arguments to SET |
|||
set global innodb_file_format=`-1`; |
|||
ERROR HY000: Incorrect arguments to SET |
|||
set global innodb_file_format=`Antelope`; |
|||
set global innodb_file_format=`Barracuda`; |
|||
set global innodb_file_format=`Cheetah`; |
|||
ERROR HY000: Incorrect arguments to SET |
|||
set global innodb_file_format=`abc`; |
|||
ERROR HY000: Incorrect arguments to SET |
|||
set global innodb_file_format=`1a`; |
|||
ERROR HY000: Incorrect arguments to SET |
|||
set global innodb_file_format=``; |
|||
ERROR HY000: Incorrect arguments to SET |
|||
set global innodb_file_per_table = on; |
|||
set global innodb_file_format = `1`; |
|||
set innodb_strict_mode = off; |
|||
create table t1 (id int primary key) engine = innodb key_block_size = 0; |
|||
Warnings: |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=0. |
|||
drop table t1; |
|||
set innodb_strict_mode = on; |
|||
create table t1 (id int primary key) engine = innodb key_block_size = 0; |
|||
ERROR HY000: Can't create table 'test.t1' (errno: 1478) |
|||
show warnings; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: invalid KEY_BLOCK_SIZE = 0. Valid values are [1, 2, 4, 8, 16] |
|||
Error 1005 Can't create table 'test.t1' (errno: 1478) |
|||
create table t2 (id int primary key) engine = innodb key_block_size = 9; |
|||
ERROR HY000: Can't create table 'test.t2' (errno: 1478) |
|||
show warnings; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: invalid KEY_BLOCK_SIZE = 9. Valid values are [1, 2, 4, 8, 16] |
|||
Error 1005 Can't create table 'test.t2' (errno: 1478) |
|||
create table t3 (id int primary key) engine = innodb key_block_size = 1; |
|||
create table t4 (id int primary key) engine = innodb key_block_size = 2; |
|||
create table t5 (id int primary key) engine = innodb key_block_size = 4; |
|||
create table t6 (id int primary key) engine = innodb key_block_size = 8; |
|||
create table t7 (id int primary key) engine = innodb key_block_size = 16; |
|||
create table t8 (id int primary key) engine = innodb row_format = compressed; |
|||
create table t9 (id int primary key) engine = innodb row_format = dynamic; |
|||
create table t10(id int primary key) engine = innodb row_format = compact; |
|||
create table t11(id int primary key) engine = innodb row_format = redundant; |
|||
SELECT table_schema, table_name, row_format |
|||
FROM information_schema.tables WHERE engine='innodb'; |
|||
table_schema table_name row_format |
|||
test t10 Compact |
|||
test t11 Redundant |
|||
test t3 Compressed |
|||
test t4 Compressed |
|||
test t5 Compressed |
|||
test t6 Compressed |
|||
test t7 Compressed |
|||
test t8 Compressed |
|||
test t9 Dynamic |
|||
drop table t3, t4, t5, t6, t7, t8, t9, t10, t11; |
|||
create table t1 (id int primary key) engine = innodb |
|||
key_block_size = 8 row_format = compressed; |
|||
create table t2 (id int primary key) engine = innodb |
|||
key_block_size = 8 row_format = redundant; |
|||
ERROR HY000: Can't create table 'test.t2' (errno: 1478) |
|||
show warnings; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: cannot specify ROW_FORMAT = REDUNDANT with KEY_BLOCK_SIZE. |
|||
Error 1005 Can't create table 'test.t2' (errno: 1478) |
|||
create table t3 (id int primary key) engine = innodb |
|||
key_block_size = 8 row_format = compact; |
|||
ERROR HY000: Can't create table 'test.t3' (errno: 1478) |
|||
show warnings; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: cannot specify ROW_FORMAT = COMPACT with KEY_BLOCK_SIZE. |
|||
Error 1005 Can't create table 'test.t3' (errno: 1478) |
|||
create table t4 (id int primary key) engine = innodb |
|||
key_block_size = 8 row_format = dynamic; |
|||
ERROR HY000: Can't create table 'test.t4' (errno: 1478) |
|||
show warnings; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: cannot specify ROW_FORMAT = DYNAMIC with KEY_BLOCK_SIZE. |
|||
Error 1005 Can't create table 'test.t4' (errno: 1478) |
|||
create table t5 (id int primary key) engine = innodb |
|||
key_block_size = 8 row_format = default; |
|||
ERROR HY000: Can't create table 'test.t5' (errno: 1478) |
|||
show warnings; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: cannot specify ROW_FORMAT = COMPACT with KEY_BLOCK_SIZE. |
|||
Error 1005 Can't create table 'test.t5' (errno: 1478) |
|||
SELECT table_schema, table_name, row_format |
|||
FROM information_schema.tables WHERE engine='innodb'; |
|||
table_schema table_name row_format |
|||
test t1 Compressed |
|||
drop table t1; |
|||
create table t1 (id int primary key) engine = innodb |
|||
key_block_size = 9 row_format = redundant; |
|||
ERROR HY000: Can't create table 'test.t1' (errno: 1478) |
|||
show warnings; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: invalid KEY_BLOCK_SIZE = 9. Valid values are [1, 2, 4, 8, 16] |
|||
Warning 1478 InnoDB: cannot specify ROW_FORMAT = REDUNDANT with KEY_BLOCK_SIZE. |
|||
Error 1005 Can't create table 'test.t1' (errno: 1478) |
|||
create table t2 (id int primary key) engine = innodb |
|||
key_block_size = 9 row_format = compact; |
|||
ERROR HY000: Can't create table 'test.t2' (errno: 1478) |
|||
show warnings; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: invalid KEY_BLOCK_SIZE = 9. Valid values are [1, 2, 4, 8, 16] |
|||
Warning 1478 InnoDB: cannot specify ROW_FORMAT = COMPACT with KEY_BLOCK_SIZE. |
|||
Error 1005 Can't create table 'test.t2' (errno: 1478) |
|||
create table t2 (id int primary key) engine = innodb |
|||
key_block_size = 9 row_format = dynamic; |
|||
ERROR HY000: Can't create table 'test.t2' (errno: 1478) |
|||
show warnings; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: invalid KEY_BLOCK_SIZE = 9. Valid values are [1, 2, 4, 8, 16] |
|||
Warning 1478 InnoDB: cannot specify ROW_FORMAT = DYNAMIC with KEY_BLOCK_SIZE. |
|||
Error 1005 Can't create table 'test.t2' (errno: 1478) |
|||
SELECT table_schema, table_name, row_format |
|||
FROM information_schema.tables WHERE engine='innodb'; |
|||
table_schema table_name row_format |
|||
set global innodb_file_per_table = off; |
|||
create table t1 (id int primary key) engine = innodb key_block_size = 1; |
|||
ERROR HY000: Can't create table 'test.t1' (errno: 1478) |
|||
show warnings; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table. |
|||
Error 1005 Can't create table 'test.t1' (errno: 1478) |
|||
create table t2 (id int primary key) engine = innodb key_block_size = 2; |
|||
ERROR HY000: Can't create table 'test.t2' (errno: 1478) |
|||
show warnings; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table. |
|||
Error 1005 Can't create table 'test.t2' (errno: 1478) |
|||
create table t3 (id int primary key) engine = innodb key_block_size = 4; |
|||
ERROR HY000: Can't create table 'test.t3' (errno: 1478) |
|||
show warnings; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table. |
|||
Error 1005 Can't create table 'test.t3' (errno: 1478) |
|||
create table t4 (id int primary key) engine = innodb key_block_size = 8; |
|||
ERROR HY000: Can't create table 'test.t4' (errno: 1478) |
|||
show warnings; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table. |
|||
Error 1005 Can't create table 'test.t4' (errno: 1478) |
|||
create table t5 (id int primary key) engine = innodb key_block_size = 16; |
|||
ERROR HY000: Can't create table 'test.t5' (errno: 1478) |
|||
show warnings; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table. |
|||
Error 1005 Can't create table 'test.t5' (errno: 1478) |
|||
create table t6 (id int primary key) engine = innodb row_format = compressed; |
|||
ERROR HY000: Can't create table 'test.t6' (errno: 1478) |
|||
show warnings; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: ROW_FORMAT=COMPRESSED requires innodb_file_per_table. |
|||
Error 1005 Can't create table 'test.t6' (errno: 1478) |
|||
create table t7 (id int primary key) engine = innodb row_format = dynamic; |
|||
ERROR HY000: Can't create table 'test.t7' (errno: 1478) |
|||
show warnings; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: ROW_FORMAT=DYNAMIC requires innodb_file_per_table. |
|||
Error 1005 Can't create table 'test.t7' (errno: 1478) |
|||
create table t8 (id int primary key) engine = innodb row_format = compact; |
|||
create table t9 (id int primary key) engine = innodb row_format = redundant; |
|||
SELECT table_schema, table_name, row_format |
|||
FROM information_schema.tables WHERE engine='innodb'; |
|||
table_schema table_name row_format |
|||
test t8 Compact |
|||
test t9 Redundant |
|||
drop table t8, t9; |
|||
set global innodb_file_per_table = on; |
|||
set global innodb_file_format = `0`; |
|||
create table t1 (id int primary key) engine = innodb key_block_size = 1; |
|||
ERROR HY000: Can't create table 'test.t1' (errno: 1478) |
|||
show warnings; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_format > Antelope. |
|||
Error 1005 Can't create table 'test.t1' (errno: 1478) |
|||
create table t2 (id int primary key) engine = innodb key_block_size = 2; |
|||
ERROR HY000: Can't create table 'test.t2' (errno: 1478) |
|||
show warnings; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_format > Antelope. |
|||
Error 1005 Can't create table 'test.t2' (errno: 1478) |
|||
create table t3 (id int primary key) engine = innodb key_block_size = 4; |
|||
ERROR HY000: Can't create table 'test.t3' (errno: 1478) |
|||
show warnings; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_format > Antelope. |
|||
Error 1005 Can't create table 'test.t3' (errno: 1478) |
|||
create table t4 (id int primary key) engine = innodb key_block_size = 8; |
|||
ERROR HY000: Can't create table 'test.t4' (errno: 1478) |
|||
show warnings; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_format > Antelope. |
|||
Error 1005 Can't create table 'test.t4' (errno: 1478) |
|||
create table t5 (id int primary key) engine = innodb key_block_size = 16; |
|||
ERROR HY000: Can't create table 'test.t5' (errno: 1478) |
|||
show warnings; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_format > Antelope. |
|||
Error 1005 Can't create table 'test.t5' (errno: 1478) |
|||
create table t6 (id int primary key) engine = innodb row_format = compressed; |
|||
ERROR HY000: Can't create table 'test.t6' (errno: 1478) |
|||
show warnings; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: ROW_FORMAT=COMPRESSED requires innodb_file_format > Antelope. |
|||
Error 1005 Can't create table 'test.t6' (errno: 1478) |
|||
create table t7 (id int primary key) engine = innodb row_format = dynamic; |
|||
ERROR HY000: Can't create table 'test.t7' (errno: 1478) |
|||
show warnings; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: ROW_FORMAT=DYNAMIC requires innodb_file_format > Antelope. |
|||
Error 1005 Can't create table 'test.t7' (errno: 1478) |
|||
create table t8 (id int primary key) engine = innodb row_format = compact; |
|||
create table t9 (id int primary key) engine = innodb row_format = redundant; |
|||
SELECT table_schema, table_name, row_format |
|||
FROM information_schema.tables WHERE engine='innodb'; |
|||
table_schema table_name row_format |
|||
test t8 Compact |
|||
test t9 Redundant |
|||
drop table t8, t9; |
|||
set global innodb_file_per_table=0; |
|||
set global innodb_file_format=Antelope; |
|||
set global innodb_file_per_table=on; |
|||
set global innodb_file_format=`Barracuda`; |
|||
set global innodb_file_format_check=`Antelope`; |
|||
create table normal_table ( |
|||
c1 int |
|||
) engine = innodb; |
|||
select @@innodb_file_format_check; |
|||
@@innodb_file_format_check |
|||
Antelope |
|||
create table zip_table ( |
|||
c1 int |
|||
) engine = innodb key_block_size = 8; |
|||
select @@innodb_file_format_check; |
|||
@@innodb_file_format_check |
|||
Barracuda |
|||
set global innodb_file_format_check=`Antelope`; |
|||
select @@innodb_file_format_check; |
|||
@@innodb_file_format_check |
|||
Antelope |
|||
show table status; |
|||
select @@innodb_file_format_check; |
|||
@@innodb_file_format_check |
|||
Barracuda |
|||
drop table normal_table, zip_table; |
|||
@ -1,2 +0,0 @@ |
|||
SET GLOBAL innodb_file_format='Barracuda'; |
|||
SET GLOBAL innodb_file_per_table=ON; |
|||
@ -1 +0,0 @@ |
|||
SET storage_engine=InnoDB; |
|||
@ -1,4 +0,0 @@ |
|||
SET TX_ISOLATION='READ-COMMITTED'; |
|||
CREATE TABLE bug40360 (a INT) engine=innodb; |
|||
INSERT INTO bug40360 VALUES (1); |
|||
DROP TABLE bug40360; |
|||
@ -1,4 +0,0 @@ |
|||
CREATE TABLE bug41904 (id INT PRIMARY KEY, uniquecol CHAR(15)) ENGINE=InnoDB; |
|||
INSERT INTO bug41904 VALUES (1,NULL), (2,NULL); |
|||
CREATE UNIQUE INDEX ui ON bug41904 (uniquecol); |
|||
DROP TABLE bug41904; |
|||
@ -1,7 +0,0 @@ |
|||
CREATE TABLE bug44032(c CHAR(3) CHARACTER SET UTF8) ROW_FORMAT=REDUNDANT |
|||
ENGINE=InnoDB; |
|||
INSERT INTO bug44032 VALUES('abc'),(0xEFBCA4EFBCA4EFBCA4); |
|||
UPDATE bug44032 SET c='DDD' WHERE c=0xEFBCA4EFBCA4EFBCA4; |
|||
UPDATE bug44032 SET c=NULL WHERE c='DDD'; |
|||
UPDATE bug44032 SET c='DDD' WHERE c IS NULL; |
|||
DROP TABLE bug44032; |
|||
@ -1,8 +0,0 @@ |
|||
CREATE TABLE bug44571 (foo INT) ENGINE=InnoDB; |
|||
ALTER TABLE bug44571 CHANGE foo bar INT; |
|||
ALTER TABLE bug44571 ADD INDEX bug44571b (foo); |
|||
ERROR 42000: Key column 'foo' doesn't exist in table |
|||
ALTER TABLE bug44571 ADD INDEX bug44571c (bar); |
|||
DROP INDEX bug44571c ON bug44571; |
|||
CREATE INDEX bug44571c ON bug44571 (bar); |
|||
DROP TABLE bug44571; |
|||
@ -1,9 +0,0 @@ |
|||
SET foreign_key_checks=0; |
|||
CREATE TABLE t1 (id int, foreign key (id) references t2(id)) ENGINE=INNODB; |
|||
CREATE TABLE t2 (id int, foreign key (id) references t1(id)) ENGINE=INNODB; |
|||
SET foreign_key_checks=1; |
|||
SELECT COUNT(*) FROM information_schema.key_column_usage WHERE REFERENCED_TABLE_NAME in ('t1', 't2'); |
|||
COUNT(*) |
|||
2 |
|||
SET foreign_key_checks=0; |
|||
DROP TABLE t1, t2; |
|||
@ -1,24 +0,0 @@ |
|||
set @old_innodb_file_format_check=@@innodb_file_format_check; |
|||
select @old_innodb_file_format_check; |
|||
@old_innodb_file_format_check |
|||
Antelope |
|||
set global innodb_file_format_check = Barracuda; |
|||
select @@innodb_file_format_check; |
|||
@@innodb_file_format_check |
|||
Barracuda |
|||
set global innodb_file_format_check = DEFAULT; |
|||
select @@innodb_file_format_check; |
|||
@@innodb_file_format_check |
|||
Barracuda |
|||
set global innodb_file_format_check = @old_innodb_file_format_check; |
|||
select @@innodb_file_format_check; |
|||
@@innodb_file_format_check |
|||
Antelope |
|||
set global innodb_file_format_check = cheetah; |
|||
ERROR HY000: Incorrect arguments to SET |
|||
set global innodb_file_format_check = Bear; |
|||
ERROR HY000: Incorrect arguments to SET |
|||
set global innodb_file_format_check = on; |
|||
ERROR HY000: Incorrect arguments to SET |
|||
set global innodb_file_format_check = off; |
|||
ERROR HY000: Incorrect arguments to SET |
|||
@ -1,23 +0,0 @@ |
|||
CREATE TABLE bug47622( |
|||
`rule_key` int(11) NOT NULL DEFAULT '0', |
|||
`seq` smallint(6) NOT NULL DEFAULT '0', |
|||
`action` smallint(6) NOT NULL DEFAULT '0', |
|||
`arg_id` smallint(6) DEFAULT NULL, |
|||
`else_ind` TINYINT NOT NULL, |
|||
KEY IDX_A (`arg_id`) |
|||
) ENGINE=InnoDB; |
|||
ALTER TABLE bug47622 ADD UNIQUE IDX_B (rule_key,else_ind,seq,action,arg_id); |
|||
drop index IDX_B on bug47622; |
|||
create index idx on bug47622(seq, arg_id); |
|||
ALTER TABLE bug47622 ADD UNIQUE IDX_X (rule_key,else_ind,seq,action); |
|||
drop table bug47622; |
|||
CREATE TABLE bug47622 ( |
|||
`a` int(11) NOT NULL, |
|||
`b` int(11) DEFAULT NULL, |
|||
`c` char(10) DEFAULT NULL, |
|||
`d` varchar(20) DEFAULT NULL, |
|||
PRIMARY KEY (`a`), |
|||
KEY `b` (`b`) |
|||
) ENGINE=InnoDB; |
|||
alter table bug47622 add unique index (c), add index (d); |
|||
drop table bug47622; |
|||
@ -1,66 +0,0 @@ |
|||
create table bug51378 ( |
|||
col1 int not null, |
|||
col2 blob not null, |
|||
col3 time not null) engine = innodb; |
|||
create unique index idx on bug51378(col1, col2(31)); |
|||
alter table bug51378 add unique index idx2(col1, col2(31)); |
|||
create unique index idx3 on bug51378(col1, col3); |
|||
SHOW CREATE TABLE bug51378; |
|||
Table Create Table |
|||
bug51378 CREATE TABLE `bug51378` ( |
|||
`col1` int(11) NOT NULL, |
|||
`col2` blob NOT NULL, |
|||
`col3` time NOT NULL, |
|||
UNIQUE KEY `idx3` (`col1`,`col3`), |
|||
UNIQUE KEY `idx` (`col1`,`col2`(31)), |
|||
UNIQUE KEY `idx2` (`col1`,`col2`(31)) |
|||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
|||
drop index idx3 on bug51378; |
|||
SHOW CREATE TABLE bug51378; |
|||
Table Create Table |
|||
bug51378 CREATE TABLE `bug51378` ( |
|||
`col1` int(11) NOT NULL, |
|||
`col2` blob NOT NULL, |
|||
`col3` time NOT NULL, |
|||
UNIQUE KEY `idx` (`col1`,`col2`(31)), |
|||
UNIQUE KEY `idx2` (`col1`,`col2`(31)) |
|||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
|||
alter table bug51378 add primary key idx3(col1, col2(31)); |
|||
SHOW CREATE TABLE bug51378; |
|||
Table Create Table |
|||
bug51378 CREATE TABLE `bug51378` ( |
|||
`col1` int(11) NOT NULL, |
|||
`col2` blob NOT NULL, |
|||
`col3` time NOT NULL, |
|||
PRIMARY KEY (`col1`,`col2`(31)), |
|||
UNIQUE KEY `idx` (`col1`,`col2`(31)), |
|||
UNIQUE KEY `idx2` (`col1`,`col2`(31)) |
|||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
|||
drop table bug51378; |
|||
create table bug51378 ( |
|||
col1 int not null, |
|||
col2 blob not null, |
|||
col3 time not null, primary key(col1, col2(31))) engine = innodb; |
|||
create unique index idx on bug51378(col1, col2(31)); |
|||
SHOW CREATE TABLE bug51378; |
|||
Table Create Table |
|||
bug51378 CREATE TABLE `bug51378` ( |
|||
`col1` int(11) NOT NULL, |
|||
`col2` blob NOT NULL, |
|||
`col3` time NOT NULL, |
|||
PRIMARY KEY (`col1`,`col2`(31)), |
|||
UNIQUE KEY `idx` (`col1`,`col2`(31)) |
|||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
|||
drop table bug51378; |
|||
create table bug51378 ( |
|||
col1 int not null, |
|||
col2 int ) engine = innodb; |
|||
create unique index idx on bug51378(col1, col2); |
|||
SHOW CREATE TABLE bug51378; |
|||
Table Create Table |
|||
bug51378 CREATE TABLE `bug51378` ( |
|||
`col1` int(11) NOT NULL, |
|||
`col2` int(11) DEFAULT NULL, |
|||
UNIQUE KEY `idx` (`col1`,`col2`) |
|||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
|||
drop table bug51378; |
|||
@ -1,43 +0,0 @@ |
|||
call mtr.add_suppression("InnoDB: invalid innodb_file_format_check value"); |
|||
select @@innodb_file_format; |
|||
@@innodb_file_format |
|||
Antelope |
|||
select @@innodb_file_format_check; |
|||
@@innodb_file_format_check |
|||
Antelope |
|||
set global innodb_file_format=antelope; |
|||
set global innodb_file_format=barracuda; |
|||
set global innodb_file_format=cheetah; |
|||
ERROR HY000: Incorrect arguments to SET |
|||
select @@innodb_file_format; |
|||
@@innodb_file_format |
|||
Barracuda |
|||
set global innodb_file_format=default; |
|||
select @@innodb_file_format; |
|||
@@innodb_file_format |
|||
Antelope |
|||
set global innodb_file_format=on; |
|||
ERROR HY000: Incorrect arguments to SET |
|||
set global innodb_file_format=off; |
|||
ERROR HY000: Incorrect arguments to SET |
|||
select @@innodb_file_format; |
|||
@@innodb_file_format |
|||
Antelope |
|||
set global innodb_file_format_check=antelope; |
|||
set global innodb_file_format_check=barracuda; |
|||
set global innodb_file_format_check=cheetah; |
|||
ERROR HY000: Incorrect arguments to SET |
|||
select @@innodb_file_format_check; |
|||
@@innodb_file_format_check |
|||
Barracuda |
|||
set global innodb_file_format_check=default; |
|||
select @@innodb_file_format_check; |
|||
@@innodb_file_format_check |
|||
Barracuda |
|||
set global innodb_file_format=on; |
|||
ERROR HY000: Incorrect arguments to SET |
|||
set global innodb_file_format=off; |
|||
ERROR HY000: Incorrect arguments to SET |
|||
select @@innodb_file_format_check; |
|||
@@innodb_file_format_check |
|||
Barracuda |
|||
@ -1,23 +0,0 @@ |
|||
lock_mode lock_type lock_table lock_index lock_rec lock_data |
|||
X RECORD `test`.```t'\"_str` `PRIMARY` 2 '1', 'abc', '''abc', 'abc''', 'a''bc', 'a''bc''', '''abc''''' |
|||
X RECORD `test`.```t'\"_str` `PRIMARY` 2 '1', 'abc', '''abc', 'abc''', 'a''bc', 'a''bc''', '''abc''''' |
|||
X RECORD `test`.```t'\"_str` `PRIMARY` 3 '2', 'abc', '"abc', 'abc"', 'a"bc', 'a"bc"', '"abc""' |
|||
X RECORD `test`.```t'\"_str` `PRIMARY` 3 '2', 'abc', '"abc', 'abc"', 'a"bc', 'a"bc"', '"abc""' |
|||
X RECORD `test`.```t'\"_str` `PRIMARY` 4 '3', 'abc', '\\abc', 'abc\\', 'a\\bc', 'a\\bc\\', '\\abc\\\\' |
|||
X RECORD `test`.```t'\"_str` `PRIMARY` 4 '3', 'abc', '\\abc', 'abc\\', 'a\\bc', 'a\\bc\\', '\\abc\\\\' |
|||
X RECORD `test`.```t'\"_str` `PRIMARY` 5 '4', 'abc', '\0abc', 'abc\0', 'a\0bc', 'a\0bc\0', 'a\0bc\0\0' |
|||
X RECORD `test`.```t'\"_str` `PRIMARY` 5 '4', 'abc', '\0abc', 'abc\0', 'a\0bc', 'a\0bc\0', 'a\0bc\0\0' |
|||
X RECORD `test`.`t_min` `PRIMARY` 2 -128, 0, -32768, 0, -8388608, 0, -2147483648, 0, -9223372036854775808, 0 |
|||
X RECORD `test`.`t_min` `PRIMARY` 2 -128, 0, -32768, 0, -8388608, 0, -2147483648, 0, -9223372036854775808, 0 |
|||
X RECORD `test`.`t_max` `PRIMARY` 2 127, 255, 32767, 65535, 8388607, 16777215, 2147483647, 4294967295, 9223372036854775807, 18446744073709551615 |
|||
X RECORD `test`.`t_max` `PRIMARY` 2 127, 255, 32767, 65535, 8388607, 16777215, 2147483647, 4294967295, 9223372036854775807, 18446744073709551615 |
|||
X RECORD `test`.```t'\"_str` `PRIMARY` 1 supremum pseudo-record |
|||
X RECORD `test`.```t'\"_str` `PRIMARY` 1 supremum pseudo-record |
|||
lock_table COUNT(*) |
|||
`test`.`t_max` 2 |
|||
`test`.`t_min` 2 |
|||
`test`.```t'\"_str` 10 |
|||
lock_table COUNT(*) |
|||
"test"."t_max" 2 |
|||
"test"."t_min" 2 |
|||
"test"."`t'\""_str" 10 |
|||
@ -1 +0,0 @@ |
|||
innodb-index: InnoDB: Error: table `test`.`t1#1` already exists in InnoDB internal |
|||
@ -1,66 +0,0 @@ |
|||
# |
|||
# Test that mysqld does not crash when running ANALYZE TABLE with |
|||
# different values of the parameter innodb_stats_sample_pages. |
|||
# |
|||
|
|||
-- source include/have_innodb.inc |
|||
-- source suite/innodb/include/have_innodb_plugin.inc |
|||
|
|||
# we care only that the following SQL commands do not produce errors |
|||
# and do not crash the server |
|||
-- disable_query_log |
|||
-- disable_result_log |
|||
-- enable_warnings |
|||
|
|||
SET GLOBAL innodb_stats_sample_pages=0; |
|||
|
|||
# check that the value has been adjusted to 1 |
|||
-- enable_result_log |
|||
SHOW VARIABLES LIKE 'innodb_stats_sample_pages'; |
|||
-- disable_result_log |
|||
|
|||
CREATE TABLE innodb_analyze ( |
|||
a INT, |
|||
b INT, |
|||
KEY(a), |
|||
KEY(b,a) |
|||
) ENGINE=InnoDB; |
|||
|
|||
# test with empty table |
|||
|
|||
ANALYZE TABLE innodb_analyze; |
|||
|
|||
SET GLOBAL innodb_stats_sample_pages=2; |
|||
ANALYZE TABLE innodb_analyze; |
|||
|
|||
SET GLOBAL innodb_stats_sample_pages=4; |
|||
ANALYZE TABLE innodb_analyze; |
|||
|
|||
SET GLOBAL innodb_stats_sample_pages=8; |
|||
ANALYZE TABLE innodb_analyze; |
|||
|
|||
SET GLOBAL innodb_stats_sample_pages=16; |
|||
ANALYZE TABLE innodb_analyze; |
|||
|
|||
INSERT INTO innodb_analyze VALUES |
|||
(1,1), (1,1), (1,2), (1,3), (1,4), (1,5), |
|||
(8,1), (8,8), (8,2), (7,1), (1,4), (3,5); |
|||
|
|||
SET GLOBAL innodb_stats_sample_pages=1; |
|||
ANALYZE TABLE innodb_analyze; |
|||
|
|||
SET GLOBAL innodb_stats_sample_pages=2; |
|||
ANALYZE TABLE innodb_analyze; |
|||
|
|||
SET GLOBAL innodb_stats_sample_pages=4; |
|||
ANALYZE TABLE innodb_analyze; |
|||
|
|||
SET GLOBAL innodb_stats_sample_pages=8; |
|||
ANALYZE TABLE innodb_analyze; |
|||
|
|||
SET GLOBAL innodb_stats_sample_pages=16; |
|||
ANALYZE TABLE innodb_analyze; |
|||
|
|||
DROP TABLE innodb_analyze; |
|||
|
|||
SET GLOBAL innodb_stats_sample_pages=DEFAULT; |
|||
@ -1 +0,0 @@ |
|||
--loose-innodb_lock_wait_timeout=2 |
|||
@ -1,59 +0,0 @@ |
|||
-- source include/not_embedded.inc |
|||
-- source include/have_innodb.inc |
|||
-- source suite/innodb/include/have_innodb_plugin.inc |
|||
|
|||
--disable_warnings |
|||
drop table if exists t1; |
|||
--enable_warnings |
|||
|
|||
# REPLACE INTO ... SELECT and INSERT INTO ... SELECT should do |
|||
# a consistent read of the source table. |
|||
|
|||
connect (a,localhost,root,,); |
|||
connect (b,localhost,root,,); |
|||
connection a; |
|||
set session transaction isolation level read committed; |
|||
create table t1(a int not null) engine=innodb DEFAULT CHARSET=latin1; |
|||
create table t2 like t1; |
|||
insert into t2 values (1),(2),(3),(4),(5),(6),(7); |
|||
set autocommit=0; |
|||
|
|||
# REPLACE INTO ... SELECT case |
|||
begin; |
|||
# this should not result in any locks on t2. |
|||
replace into t1 select * from t2; |
|||
|
|||
connection b; |
|||
set session transaction isolation level read committed; |
|||
set autocommit=0; |
|||
# should not cause a lock wait. |
|||
delete from t2 where a=5; |
|||
commit; |
|||
delete from t2; |
|||
commit; |
|||
connection a; |
|||
commit; |
|||
|
|||
# INSERT INTO ... SELECT case |
|||
begin; |
|||
# this should not result in any locks on t2. |
|||
insert into t1 select * from t2; |
|||
|
|||
connection b; |
|||
set session transaction isolation level read committed; |
|||
set autocommit=0; |
|||
# should not cause a lock wait. |
|||
delete from t2 where a=5; |
|||
commit; |
|||
delete from t2; |
|||
commit; |
|||
connection a; |
|||
commit; |
|||
|
|||
select * from t1; |
|||
drop table t1; |
|||
drop table t2; |
|||
|
|||
connection default; |
|||
disconnect a; |
|||
disconnect b; |
|||
@ -1,550 +0,0 @@ |
|||
-- source include/have_innodb.inc |
|||
|
|||
let $MYSQLD_DATADIR= `select @@datadir`; |
|||
|
|||
let $innodb_file_format_check_orig=`select @@innodb_file_format_check`; |
|||
|
|||
create table t1(a int not null, b int, c char(10) not null, d varchar(20)) engine = innodb; |
|||
insert into t1 values (5,5,'oo','oo'),(4,4,'tr','tr'),(3,4,'ad','ad'),(2,3,'ak','ak'); |
|||
commit; |
|||
--error ER_DUP_KEYNAME |
|||
alter table t1 add index b (b), add index b (b); |
|||
--error ER_DUP_FIELDNAME |
|||
alter table t1 add index (b,b); |
|||
alter table t1 add index d2 (d); |
|||
show create table t1; |
|||
explain select * from t1 force index(d2) order by d; |
|||
select * from t1 force index (d2) order by d; |
|||
--error ER_DUP_ENTRY |
|||
alter table t1 add unique index (b); |
|||
show create table t1; |
|||
alter table t1 add index (b); |
|||
show create table t1; |
|||
|
|||
# Check how existing tables interfere with temporary tables. |
|||
CREATE TABLE `t1#1`(a INT PRIMARY KEY) ENGINE=InnoDB; |
|||
|
|||
--error 156 |
|||
alter table t1 add unique index (c), add index (d); |
|||
rename table `t1#1` to `t1#2`; |
|||
--error 156 |
|||
alter table t1 add unique index (c), add index (d); |
|||
drop table `t1#2`; |
|||
|
|||
alter table t1 add unique index (c), add index (d); |
|||
show create table t1; |
|||
explain select * from t1 force index(c) order by c; |
|||
alter table t1 add primary key (a), drop index c; |
|||
show create table t1; |
|||
--error ER_MULTIPLE_PRI_KEY |
|||
alter table t1 add primary key (c); |
|||
--error ER_DUP_ENTRY |
|||
alter table t1 drop primary key, add primary key (b); |
|||
create unique index c on t1 (c); |
|||
show create table t1; |
|||
explain select * from t1 force index(c) order by c; |
|||
select * from t1 force index(c) order by c; |
|||
alter table t1 drop index b, add index (b); |
|||
show create table t1; |
|||
insert into t1 values(6,1,'ggg','ggg'); |
|||
select * from t1; |
|||
select * from t1 force index(b) order by b; |
|||
select * from t1 force index(c) order by c; |
|||
select * from t1 force index(d) order by d; |
|||
explain select * from t1 force index(b) order by b; |
|||
explain select * from t1 force index(c) order by c; |
|||
explain select * from t1 force index(d) order by d; |
|||
show create table t1; |
|||
drop table t1; |
|||
|
|||
create table t1(a int not null, b int, c char(10), d varchar(20), primary key (a)) engine = innodb; |
|||
insert into t1 values (1,1,'ab','ab'),(2,2,'ac','ac'),(3,3,'ad','ad'),(4,4,'afe','afe'); |
|||
commit; |
|||
alter table t1 add index (c(2)); |
|||
show create table t1; |
|||
alter table t1 add unique index (d(10)); |
|||
show create table t1; |
|||
insert into t1 values(5,1,'ggg','ggg'); |
|||
select * from t1; |
|||
select * from t1 force index(c) order by c; |
|||
select * from t1 force index(d) order by d; |
|||
explain select * from t1 order by b; |
|||
explain select * from t1 force index(c) order by c; |
|||
explain select * from t1 force index(d) order by d; |
|||
show create table t1; |
|||
alter table t1 drop index d; |
|||
insert into t1 values(8,9,'fff','fff'); |
|||
select * from t1; |
|||
select * from t1 force index(c) order by c; |
|||
explain select * from t1 order by b; |
|||
explain select * from t1 force index(c) order by c; |
|||
explain select * from t1 order by d; |
|||
show create table t1; |
|||
drop table t1; |
|||
|
|||
create table t1(a int not null, b int, c char(10), d varchar(20), primary key (a)) engine = innodb; |
|||
insert into t1 values (1,1,'ab','ab'),(2,2,'ac','ac'),(3,2,'ad','ad'),(4,4,'afe','afe'); |
|||
commit; |
|||
alter table t1 add unique index (b,c); |
|||
insert into t1 values(8,9,'fff','fff'); |
|||
select * from t1; |
|||
select * from t1 force index(b) order by b; |
|||
explain select * from t1 force index(b) order by b; |
|||
show create table t1; |
|||
alter table t1 add index (b,c); |
|||
insert into t1 values(11,11,'kkk','kkk'); |
|||
select * from t1; |
|||
select * from t1 force index(b) order by b; |
|||
explain select * from t1 force index(b) order by b; |
|||
show create table t1; |
|||
alter table t1 add unique index (c,d); |
|||
insert into t1 values(13,13,'yyy','aaa'); |
|||
select * from t1; |
|||
select * from t1 force index(b) order by b; |
|||
select * from t1 force index(c) order by c; |
|||
explain select * from t1 force index(b) order by b; |
|||
explain select * from t1 force index(c) order by c; |
|||
show create table t1; |
|||
drop table t1; |
|||
|
|||
create table t1(a int not null, b int not null, c int, primary key (a), key (b)) engine = innodb; |
|||
create table t3(a int not null, c int not null, d int, primary key (a), key (c)) engine = innodb; |
|||
create table t4(a int not null, d int not null, e int, primary key (a), key (d)) engine = innodb; |
|||
create table t2(a int not null, b int not null, c int not null, d int not null, e int, |
|||
foreign key (b) references t1(b) on delete cascade, |
|||
foreign key (c) references t3(c), foreign key (d) references t4(d)) |
|||
engine = innodb; |
|||
--error ER_DROP_INDEX_FK |
|||
alter table t1 drop index b; |
|||
--error ER_DROP_INDEX_FK |
|||
alter table t3 drop index c; |
|||
--error ER_DROP_INDEX_FK |
|||
alter table t4 drop index d; |
|||
--error ER_DROP_INDEX_FK |
|||
alter table t2 drop index b; |
|||
--error ER_DROP_INDEX_FK |
|||
alter table t2 drop index b, drop index c, drop index d; |
|||
# Apparently, the following makes mysql_alter_table() drop index d. |
|||
create unique index dc on t2 (d,c); |
|||
create index dc on t1 (b,c); |
|||
# This should preserve the foreign key constraints. |
|||
alter table t2 add primary key (a); |
|||
insert into t1 values (1,1,1); |
|||
insert into t3 values (1,1,1); |
|||
insert into t4 values (1,1,1); |
|||
insert into t2 values (1,1,1,1,1); |
|||
commit; |
|||
alter table t4 add constraint dc foreign key (a) references t1(a); |
|||
show create table t4; |
|||
--replace_regex /'test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
# a foreign key 'test/dc' already exists |
|||
--error ER_CANT_CREATE_TABLE |
|||
alter table t3 add constraint dc foreign key (a) references t1(a); |
|||
show create table t3; |
|||
# this should be fixed by MySQL (see Bug #51451) |
|||
--error ER_WRONG_NAME_FOR_INDEX |
|||
alter table t2 drop index b, add index (b); |
|||
show create table t2; |
|||
--error ER_ROW_IS_REFERENCED_2 |
|||
delete from t1; |
|||
--error ER_CANT_DROP_FIELD_OR_KEY |
|||
drop index dc on t4; |
|||
# there is no foreign key dc on t3 |
|||
--replace_regex /'[^']*test\/#sql2-[0-9a-f-]*'/'#sql2-temporary'/ |
|||
# Embedded server doesn't chdir to data directory |
|||
--replace_result $MYSQLD_DATADIR ./ master-data/ '' |
|||
--error ER_ERROR_ON_RENAME |
|||
alter table t3 drop foreign key dc; |
|||
alter table t4 drop foreign key dc; |
|||
select * from t2; |
|||
delete from t1; |
|||
select * from t2; |
|||
|
|||
drop table t2,t4,t3,t1; |
|||
|
|||
-- let charset = utf8 |
|||
-- source suite/innodb/include/innodb-index.inc |
|||
|
|||
create table t1(a int not null, b int) engine = innodb; |
|||
insert into t1 values (1,1),(1,1),(1,1),(1,1); |
|||
--error ER_DUP_ENTRY |
|||
alter table t1 add unique index (a); |
|||
--error ER_DUP_ENTRY |
|||
alter table t1 add unique index (b); |
|||
--error ER_DUP_ENTRY |
|||
alter table t1 add unique index (a), add unique index(b); |
|||
show create table t1; |
|||
drop table t1; |
|||
|
|||
create table t1(a int not null, c int not null,b int, primary key(a), unique key(c), key(b)) engine = innodb; |
|||
alter table t1 drop index c, drop index b; |
|||
show create table t1; |
|||
drop table t1; |
|||
|
|||
create table t1(a int not null, b int, primary key(a)) engine = innodb; |
|||
alter table t1 add index (b); |
|||
show create table t1; |
|||
drop table t1; |
|||
|
|||
create table t1(a int not null, b int, c char(10), d varchar(20), primary key (a)) engine = innodb; |
|||
insert into t1 values (1,1,'ab','ab'),(2,2,'ac','ac'),(3,3,'ac','ac'),(4,4,'afe','afe'),(5,4,'affe','affe'); |
|||
--error ER_DUP_ENTRY |
|||
alter table t1 add unique index (b), add unique index (c), add unique index (d); |
|||
--error ER_DUP_ENTRY |
|||
alter table t1 add unique index (c), add unique index (b), add index (d); |
|||
show create table t1; |
|||
drop table t1; |
|||
|
|||
create table t1(a int not null, b int not null, c int, primary key (a), key(c)) engine=innodb; |
|||
insert into t1 values (5,1,5),(4,2,4),(3,3,3),(2,4,2),(1,5,1); |
|||
alter table t1 add unique index (b); |
|||
insert into t1 values (10,20,20),(11,19,19),(12,18,18),(13,17,17); |
|||
show create table t1; |
|||
check table t1; |
|||
explain select * from t1 force index(c) order by c; |
|||
explain select * from t1 order by a; |
|||
explain select * from t1 force index(b) order by b; |
|||
select * from t1 order by a; |
|||
select * from t1 force index(b) order by b; |
|||
select * from t1 force index(c) order by c; |
|||
drop table t1; |
|||
|
|||
create table t1(a int not null, b int not null) engine=innodb; |
|||
insert into t1 values (1,1); |
|||
alter table t1 add primary key(b); |
|||
insert into t1 values (2,2); |
|||
show create table t1; |
|||
check table t1; |
|||
select * from t1; |
|||
explain select * from t1; |
|||
explain select * from t1 order by a; |
|||
explain select * from t1 order by b; |
|||
checksum table t1; |
|||
drop table t1; |
|||
|
|||
create table t1(a int not null) engine=innodb; |
|||
insert into t1 values (1); |
|||
alter table t1 add primary key(a); |
|||
insert into t1 values (2); |
|||
show create table t1; |
|||
check table t1; |
|||
commit; |
|||
select * from t1; |
|||
explain select * from t1; |
|||
explain select * from t1 order by a; |
|||
drop table t1; |
|||
|
|||
create table t2(d varchar(17) primary key) engine=innodb default charset=utf8; |
|||
create table t3(a int primary key) engine=innodb; |
|||
|
|||
insert into t3 values(22),(44),(33),(55),(66); |
|||
|
|||
insert into t2 values ('jejdkrun87'),('adfd72nh9k'), |
|||
('adfdpplkeock'),('adfdijnmnb78k'),('adfdijn0loKNHJik'); |
|||
|
|||
create table t1(a int, b blob, c text, d text not null) |
|||
engine=innodb default charset = utf8; |
|||
|
|||
# r2667 The following test is disabled because MySQL behavior changed. |
|||
# r2667 The test was added with this comment: |
|||
# r2667 |
|||
# r2667 ------------------------------------------------------------------------ |
|||
# r2667 r1699 | marko | 2007-08-10 19:53:19 +0300 (Fri, 10 Aug 2007) | 5 lines |
|||
# r2667 |
|||
# r2667 branches/zip: Add changes that accidentally omitted from r1698: |
|||
# r2667 |
|||
# r2667 innodb-index.test, innodb-index.result: Add a test for creating |
|||
# r2667 a PRIMARY KEY on a column that contains a NULL value. |
|||
# r2667 ------------------------------------------------------------------------ |
|||
# r2667 |
|||
# r2667 but in BZR-r2667: |
|||
# r2667 http://bazaar.launchpad.net/~mysql/mysql-server/mysql-5.1/revision/davi%40mysql.com-20080617141221-8yre8ys9j4uw3xx5?start_revid=joerg%40mysql.com-20080630105418-7qoe5ehomgrcdb89 |
|||
# r2667 MySQL changed the behavior to do full table copy when creating PRIMARY INDEX |
|||
# r2667 on a non-NULL column instead of calling ::add_index() which would fail (and |
|||
# r2667 this is what we were testing here). Before r2667 the code execution path was |
|||
# r2667 like this (when adding PRIMARY INDEX on a non-NULL column with ALTER TABLE): |
|||
# r2667 |
|||
# r2667 mysql_alter_table() |
|||
# r2667 compare_tables() // would return ALTER_TABLE_INDEX_CHANGED |
|||
# r2667 ::add_index() // would fail with "primary index cannot contain NULL" |
|||
# r2667 |
|||
# r2667 after r2667 the code execution path is the following: |
|||
# r2667 |
|||
# r2667 mysql_alter_table() |
|||
# r2667 compare_tables() // returns ALTER_TABLE_DATA_CHANGED |
|||
# r2667 full copy is done, without calling ::add_index() |
|||
# r2667 |
|||
# r2667 To enable, remove "# r2667: " below. |
|||
# r2667 |
|||
# r2667: insert into t1 values (null,null,null,'null'); |
|||
insert into t1 |
|||
select a,left(repeat(d,100*a),65535),repeat(d,20*a),d from t2,t3; |
|||
drop table t2, t3; |
|||
select count(*) from t1 where a=44; |
|||
select a, |
|||
length(b),b=left(repeat(d,100*a),65535),length(c),c=repeat(d,20*a),d from t1; |
|||
# r2667: --error ER_PRIMARY_CANT_HAVE_NULL |
|||
# r2667: alter table t1 add primary key (a), add key (b(20)); |
|||
# r2667: delete from t1 where d='null'; |
|||
--error ER_DUP_ENTRY |
|||
alter table t1 add primary key (a), add key (b(20)); |
|||
delete from t1 where a%2; |
|||
check table t1; |
|||
alter table t1 add primary key (a,b(255),c(255)), add key (b(767)); |
|||
select count(*) from t1 where a=44; |
|||
select a, |
|||
length(b),b=left(repeat(d,100*a),65535),length(c),c=repeat(d,20*a),d from t1; |
|||
show create table t1; |
|||
check table t1; |
|||
explain select * from t1 where b like 'adfd%'; |
|||
|
|||
# |
|||
# Test locking |
|||
# |
|||
|
|||
create table t2(a int, b varchar(255), primary key(a,b)) engine=innodb; |
|||
insert into t2 select a,left(b,255) from t1; |
|||
drop table t1; |
|||
rename table t2 to t1; |
|||
|
|||
connect (a,localhost,root,,); |
|||
connect (b,localhost,root,,); |
|||
connection a; |
|||
set innodb_lock_wait_timeout=1; |
|||
begin; |
|||
# Obtain an IX lock on the table |
|||
select a from t1 limit 1 for update; |
|||
connection b; |
|||
set innodb_lock_wait_timeout=1; |
|||
# This would require an S lock on the table, conflicting with the IX lock. |
|||
--error ER_LOCK_WAIT_TIMEOUT |
|||
create index t1ba on t1 (b,a); |
|||
connection a; |
|||
commit; |
|||
begin; |
|||
# Obtain an IS lock on the table |
|||
select a from t1 limit 1 lock in share mode; |
|||
connection b; |
|||
# This will require an S lock on the table. No conflict with the IS lock. |
|||
create index t1ba on t1 (b,a); |
|||
# This would require an X lock on the table, conflicting with the IS lock. |
|||
--error ER_LOCK_WAIT_TIMEOUT |
|||
drop index t1ba on t1; |
|||
connection a; |
|||
commit; |
|||
explain select a from t1 order by b; |
|||
--send |
|||
select a,sleep(2+a/100) from t1 order by b limit 3; |
|||
|
|||
# The following DROP INDEX will succeed, altough the SELECT above has |
|||
# opened a read view. However, during the execution of the SELECT, |
|||
# MySQL should hold a table lock that should block the execution |
|||
# of the DROP INDEX below. |
|||
|
|||
connection b; |
|||
select sleep(1); |
|||
drop index t1ba on t1; |
|||
|
|||
# After the index was dropped, subsequent SELECTs will use the same |
|||
# read view, but they should not be accessing the dropped index any more. |
|||
|
|||
connection a; |
|||
reap; |
|||
explain select a from t1 order by b; |
|||
select a from t1 order by b limit 3; |
|||
commit; |
|||
|
|||
connection default; |
|||
disconnect a; |
|||
disconnect b; |
|||
|
|||
drop table t1; |
|||
|
|||
let $per_table=`select @@innodb_file_per_table`; |
|||
let $format=`select @@innodb_file_format`; |
|||
set global innodb_file_per_table=on; |
|||
set global innodb_file_format='Barracuda'; |
|||
# Test creating a table that could lead to undo log overflow. |
|||
# In the undo log, we write a 768-byte prefix (REC_MAX_INDEX_COL_LEN) |
|||
# of each externally stored column that appears as a column prefix in an index. |
|||
# For this test case, it would suffice to write 1 byte, though. |
|||
create table t1(a blob,b blob,c blob,d blob,e blob,f blob,g blob,h blob, |
|||
i blob,j blob,k blob,l blob,m blob,n blob,o blob,p blob, |
|||
q blob,r blob,s blob,t blob,u blob) |
|||
engine=innodb row_format=dynamic; |
|||
create index t1a on t1 (a(1)); |
|||
create index t1b on t1 (b(1)); |
|||
create index t1c on t1 (c(1)); |
|||
create index t1d on t1 (d(1)); |
|||
create index t1e on t1 (e(1)); |
|||
create index t1f on t1 (f(1)); |
|||
create index t1g on t1 (g(1)); |
|||
create index t1h on t1 (h(1)); |
|||
create index t1i on t1 (i(1)); |
|||
create index t1j on t1 (j(1)); |
|||
create index t1k on t1 (k(1)); |
|||
create index t1l on t1 (l(1)); |
|||
create index t1m on t1 (m(1)); |
|||
create index t1n on t1 (n(1)); |
|||
create index t1o on t1 (o(1)); |
|||
create index t1p on t1 (p(1)); |
|||
create index t1q on t1 (q(1)); |
|||
create index t1r on t1 (r(1)); |
|||
create index t1s on t1 (s(1)); |
|||
create index t1t on t1 (t(1)); |
|||
--error 139 |
|||
create index t1u on t1 (u(1)); |
|||
--error 139 |
|||
create index t1ut on t1 (u(1), t(1)); |
|||
create index t1st on t1 (s(1), t(1)); |
|||
show create table t1; |
|||
--error 139 |
|||
create index t1u on t1 (u(1)); |
|||
alter table t1 row_format=compact; |
|||
create index t1u on t1 (u(1)); |
|||
|
|||
drop table t1; |
|||
eval set global innodb_file_per_table=$per_table; |
|||
eval set global innodb_file_format=$format; |
|||
eval set global innodb_file_format_check=$format; |
|||
|
|||
# |
|||
# Test to check whether CREATE INDEX handles implicit foreign key |
|||
# constraint modifications (Issue #70, Bug #38786) |
|||
# |
|||
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; |
|||
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; |
|||
|
|||
CREATE TABLE t1( |
|||
c1 BIGINT(12) NOT NULL, |
|||
PRIMARY KEY (c1) |
|||
) ENGINE=InnoDB DEFAULT CHARSET=latin1; |
|||
|
|||
CREATE TABLE t2( |
|||
c1 BIGINT(16) NOT NULL, |
|||
c2 BIGINT(12) NOT NULL, |
|||
c3 BIGINT(12) NOT NULL, |
|||
PRIMARY KEY (c1) |
|||
) ENGINE=InnoDB DEFAULT CHARSET=latin1; |
|||
|
|||
ALTER TABLE t2 ADD CONSTRAINT fk_t2_ca |
|||
FOREIGN KEY (c3) REFERENCES t1(c1); |
|||
|
|||
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; |
|||
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; |
|||
|
|||
SHOW CREATE TABLE t2; |
|||
|
|||
CREATE INDEX i_t2_c3_c2 ON t2(c3, c2); |
|||
|
|||
SHOW CREATE TABLE t2; |
|||
|
|||
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; |
|||
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; |
|||
|
|||
--error ER_NO_REFERENCED_ROW_2 |
|||
INSERT INTO t2 VALUES(0,0,0); |
|||
INSERT INTO t1 VALUES(0); |
|||
INSERT INTO t2 VALUES(0,0,0); |
|||
|
|||
DROP TABLE t2; |
|||
|
|||
CREATE TABLE t2( |
|||
c1 BIGINT(16) NOT NULL, |
|||
c2 BIGINT(12) NOT NULL, |
|||
c3 BIGINT(12) NOT NULL, |
|||
PRIMARY KEY (c1,c2,c3) |
|||
) ENGINE=InnoDB DEFAULT CHARSET=latin1; |
|||
|
|||
ALTER TABLE t2 ADD CONSTRAINT fk_t2_ca |
|||
FOREIGN KEY (c3) REFERENCES t1(c1); |
|||
|
|||
SHOW CREATE TABLE t2; |
|||
|
|||
CREATE INDEX i_t2_c3_c2 ON t2(c3, c2); |
|||
|
|||
SHOW CREATE TABLE t2; |
|||
--error ER_NO_REFERENCED_ROW_2 |
|||
INSERT INTO t2 VALUES(0,0,1); |
|||
INSERT INTO t2 VALUES(0,0,0); |
|||
--error ER_ROW_IS_REFERENCED_2 |
|||
DELETE FROM t1; |
|||
DELETE FROM t2; |
|||
|
|||
DROP TABLE t2; |
|||
DROP TABLE t1; |
|||
|
|||
CREATE TABLE t1( |
|||
c1 BIGINT(12) NOT NULL, |
|||
c2 INT(4) NOT NULL, |
|||
PRIMARY KEY (c2,c1) |
|||
) ENGINE=InnoDB DEFAULT CHARSET=latin1; |
|||
|
|||
CREATE TABLE t2( |
|||
c1 BIGINT(16) NOT NULL, |
|||
c2 BIGINT(12) NOT NULL, |
|||
c3 BIGINT(12) NOT NULL, |
|||
PRIMARY KEY (c1) |
|||
) ENGINE=InnoDB DEFAULT CHARSET=latin1; |
|||
|
|||
--replace_regex /'test\.#sql-[0-9_a-f-]*'/'#sql-temporary'/ |
|||
--error ER_CANT_CREATE_TABLE |
|||
ALTER TABLE t2 ADD CONSTRAINT fk_t2_ca |
|||
FOREIGN KEY (c3,c2) REFERENCES t1(c1,c1); |
|||
--replace_regex /'test\.#sql-[0-9_a-f-]*'/'#sql-temporary'/ |
|||
--error ER_CANT_CREATE_TABLE |
|||
ALTER TABLE t2 ADD CONSTRAINT fk_t2_ca |
|||
FOREIGN KEY (c3,c2) REFERENCES t1(c1,c2); |
|||
--replace_regex /'test\.#sql-[0-9_a-f-]*'/'#sql-temporary'/ |
|||
--error ER_CANT_CREATE_TABLE |
|||
ALTER TABLE t2 ADD CONSTRAINT fk_t2_ca |
|||
FOREIGN KEY (c3,c2) REFERENCES t1(c2,c1); |
|||
ALTER TABLE t1 MODIFY COLUMN c2 BIGINT(12) NOT NULL; |
|||
--replace_regex /'test\.#sql-[0-9_a-f-]*'/'#sql-temporary'/ |
|||
--error ER_CANT_CREATE_TABLE |
|||
ALTER TABLE t2 ADD CONSTRAINT fk_t2_ca |
|||
FOREIGN KEY (c3,c2) REFERENCES t1(c1,c2); |
|||
|
|||
ALTER TABLE t2 ADD CONSTRAINT fk_t2_ca |
|||
FOREIGN KEY (c3,c2) REFERENCES t1(c2,c1); |
|||
SHOW CREATE TABLE t1; |
|||
SHOW CREATE TABLE t2; |
|||
CREATE INDEX i_t2_c2_c1 ON t2(c2, c1); |
|||
SHOW CREATE TABLE t2; |
|||
CREATE INDEX i_t2_c3_c1_c2 ON t2(c3, c1, c2); |
|||
SHOW CREATE TABLE t2; |
|||
CREATE INDEX i_t2_c3_c2 ON t2(c3, c2); |
|||
SHOW CREATE TABLE t2; |
|||
|
|||
DROP TABLE t2; |
|||
DROP TABLE t1; |
|||
|
|||
connect (a,localhost,root,,); |
|||
connect (b,localhost,root,,); |
|||
connection a; |
|||
CREATE TABLE t1 (a INT, b CHAR(1)) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES (3,'a'),(3,'b'),(1,'c'),(0,'d'),(1,'e'); |
|||
connection b; |
|||
BEGIN; |
|||
SELECT * FROM t1; |
|||
connection a; |
|||
CREATE INDEX t1a ON t1(a); |
|||
connection b; |
|||
SELECT * FROM t1; |
|||
--error ER_TABLE_DEF_CHANGED |
|||
SELECT * FROM t1 FORCE INDEX(t1a) ORDER BY a; |
|||
SELECT * FROM t1; |
|||
COMMIT; |
|||
SELECT * FROM t1 FORCE INDEX(t1a) ORDER BY a; |
|||
connection default; |
|||
disconnect a; |
|||
disconnect b; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
# |
|||
# restore environment to the state it was before this test execution |
|||
# |
|||
|
|||
-- disable_query_log |
|||
eval SET GLOBAL innodb_file_format_check=$innodb_file_format_check_orig; |
|||
@ -1,5 +0,0 @@ |
|||
-- source include/have_innodb.inc |
|||
-- source include/have_ucs2.inc |
|||
|
|||
-- let charset = ucs2 |
|||
-- source suite/innodb/include/innodb-index.inc |
|||
@ -1,65 +0,0 @@ |
|||
-- source include/have_innodb.inc |
|||
-- source suite/innodb/include/have_innodb_plugin.inc |
|||
|
|||
let $timeout=`select @@innodb_lock_wait_timeout`; |
|||
set global innodb_lock_wait_timeout=42; |
|||
|
|||
connect (a,localhost,root,,); |
|||
connect (b,localhost,root,,); |
|||
|
|||
connection a; |
|||
select @@innodb_lock_wait_timeout; |
|||
set innodb_lock_wait_timeout=1; |
|||
select @@innodb_lock_wait_timeout; |
|||
|
|||
connection b; |
|||
select @@innodb_lock_wait_timeout; |
|||
set global innodb_lock_wait_timeout=347; |
|||
select @@innodb_lock_wait_timeout; |
|||
set innodb_lock_wait_timeout=1; |
|||
select @@innodb_lock_wait_timeout; |
|||
|
|||
connect (c,localhost,root,,); |
|||
connection c; |
|||
select @@innodb_lock_wait_timeout; |
|||
connection default; |
|||
disconnect c; |
|||
|
|||
connection a; |
|||
create table t1(a int primary key)engine=innodb; |
|||
begin; |
|||
insert into t1 values(1),(2),(3); |
|||
|
|||
connection b; |
|||
--send |
|||
select * from t1 for update; |
|||
|
|||
connection a; |
|||
commit; |
|||
|
|||
connection b; |
|||
reap; |
|||
|
|||
connection a; |
|||
begin; |
|||
insert into t1 values(4); |
|||
|
|||
connection b; |
|||
--send |
|||
select * from t1 for update; |
|||
|
|||
connection a; |
|||
sleep 2; |
|||
commit; |
|||
|
|||
connection b; |
|||
--error ER_LOCK_WAIT_TIMEOUT |
|||
reap; |
|||
drop table t1; |
|||
|
|||
connection default; |
|||
|
|||
disconnect a; |
|||
disconnect b; |
|||
|
|||
eval set global innodb_lock_wait_timeout=$timeout; |
|||
@ -1,2 +0,0 @@ |
|||
--loose-innodb-use-sys-malloc=true |
|||
--loose-innodb-use-sys-malloc=true |
|||
@ -1,49 +0,0 @@ |
|||
--source include/have_innodb.inc |
|||
-- source suite/innodb/include/have_innodb_plugin.inc |
|||
|
|||
#display current value of innodb_use_sys_malloc |
|||
SELECT @@GLOBAL.innodb_use_sys_malloc; |
|||
--echo 1 Expected |
|||
|
|||
#try changing it. Should fail. |
|||
--error ER_INCORRECT_GLOBAL_LOCAL_VAR |
|||
SET @@GLOBAL.innodb_use_sys_malloc=0; |
|||
--echo Expected error 'Read only variable' |
|||
|
|||
SELECT @@GLOBAL.innodb_use_sys_malloc; |
|||
--echo 1 Expected |
|||
|
|||
|
|||
#do some stuff to see if it works. |
|||
--disable_warnings |
|||
drop table if exists t1; |
|||
--enable_warnings |
|||
|
|||
create table t1(a int not null) engine=innodb DEFAULT CHARSET=latin1; |
|||
insert into t1 values (1),(2),(3),(4),(5),(6),(7); |
|||
select * from t1; |
|||
drop table t1; |
|||
--source include/have_innodb.inc |
|||
|
|||
#display current value of innodb_use_sys_malloc |
|||
SELECT @@GLOBAL.innodb_use_sys_malloc; |
|||
--echo 1 Expected |
|||
|
|||
#try changing it. Should fail. |
|||
--error ER_INCORRECT_GLOBAL_LOCAL_VAR |
|||
SET @@GLOBAL.innodb_use_sys_malloc=0; |
|||
--echo Expected error 'Read only variable' |
|||
|
|||
SELECT @@GLOBAL.innodb_use_sys_malloc; |
|||
--echo 1 Expected |
|||
|
|||
|
|||
#do some stuff to see if it works. |
|||
--disable_warnings |
|||
drop table if exists t1; |
|||
--enable_warnings |
|||
|
|||
create table t1(a int not null) engine=innodb DEFAULT CHARSET=latin1; |
|||
insert into t1 values (1),(2),(3),(4),(5),(6),(7); |
|||
select * from t1; |
|||
drop table t1; |
|||
@ -1,344 +0,0 @@ |
|||
-- source include/have_innodb.inc |
|||
-- source suite/innodb/include/have_innodb_plugin.inc |
|||
|
|||
let $per_table=`select @@innodb_file_per_table`; |
|||
let $format=`select @@innodb_file_format`; |
|||
let $innodb_file_format_check_orig=`select @@innodb_file_format_check`; |
|||
set global innodb_file_per_table=off; |
|||
set global innodb_file_format=`0`; |
|||
|
|||
create table t0(a int primary key) engine=innodb row_format=compressed; |
|||
create table t00(a int primary key) engine=innodb |
|||
key_block_size=4 row_format=compressed; |
|||
create table t1(a int primary key) engine=innodb row_format=dynamic; |
|||
create table t2(a int primary key) engine=innodb row_format=redundant; |
|||
create table t3(a int primary key) engine=innodb row_format=compact; |
|||
create table t4(a int primary key) engine=innodb key_block_size=9; |
|||
create table t5(a int primary key) engine=innodb |
|||
key_block_size=1 row_format=redundant; |
|||
|
|||
set global innodb_file_per_table=on; |
|||
create table t6(a int primary key) engine=innodb |
|||
key_block_size=1 row_format=redundant; |
|||
set global innodb_file_format=`1`; |
|||
create table t7(a int primary key) engine=innodb |
|||
key_block_size=1 row_format=redundant; |
|||
create table t8(a int primary key) engine=innodb |
|||
key_block_size=1 row_format=fixed; |
|||
create table t9(a int primary key) engine=innodb |
|||
key_block_size=1 row_format=compact; |
|||
create table t10(a int primary key) engine=innodb |
|||
key_block_size=1 row_format=dynamic; |
|||
create table t11(a int primary key) engine=innodb |
|||
key_block_size=1 row_format=compressed; |
|||
create table t12(a int primary key) engine=innodb |
|||
key_block_size=1; |
|||
create table t13(a int primary key) engine=innodb |
|||
row_format=compressed; |
|||
create table t14(a int primary key) engine=innodb key_block_size=9; |
|||
|
|||
SELECT table_schema, table_name, row_format |
|||
FROM information_schema.tables WHERE engine='innodb'; |
|||
|
|||
drop table t0,t00,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14; |
|||
alter table t1 key_block_size=0; |
|||
alter table t1 row_format=dynamic; |
|||
SELECT table_schema, table_name, row_format |
|||
FROM information_schema.tables WHERE engine='innodb'; |
|||
alter table t1 row_format=compact; |
|||
SELECT table_schema, table_name, row_format |
|||
FROM information_schema.tables WHERE engine='innodb'; |
|||
alter table t1 row_format=redundant; |
|||
SELECT table_schema, table_name, row_format |
|||
FROM information_schema.tables WHERE engine='innodb'; |
|||
drop table t1; |
|||
|
|||
create table t1(a int not null, b text, index(b(10))) engine=innodb |
|||
key_block_size=1; |
|||
|
|||
create table t2(b text)engine=innodb; |
|||
insert into t2 values(concat('1abcdefghijklmnopqrstuvwxyz', repeat('A',5000))); |
|||
|
|||
insert into t1 select 1, b from t2; |
|||
commit; |
|||
|
|||
connect (a,localhost,root,,); |
|||
connect (b,localhost,root,,); |
|||
|
|||
connection a; |
|||
begin; |
|||
update t1 set b=repeat('B',100); |
|||
|
|||
connection b; |
|||
select a,left(b,40) from t1 natural join t2; |
|||
|
|||
connection a; |
|||
rollback; |
|||
|
|||
connection b; |
|||
select a,left(b,40) from t1 natural join t2; |
|||
|
|||
connection default; |
|||
disconnect a; |
|||
disconnect b; |
|||
|
|||
SELECT table_schema, table_name, row_format |
|||
FROM information_schema.tables WHERE engine='innodb'; |
|||
drop table t1,t2; |
|||
|
|||
# The following should fail even in non-strict mode. |
|||
SET SESSION innodb_strict_mode = off; |
|||
--error ER_TOO_BIG_ROWSIZE |
|||
CREATE TABLE t1( |
|||
c TEXT NOT NULL, d TEXT NOT NULL, |
|||
PRIMARY KEY (c(767),d(767))) |
|||
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII; |
|||
--error ER_TOO_BIG_ROWSIZE |
|||
CREATE TABLE t1( |
|||
c TEXT NOT NULL, d TEXT NOT NULL, |
|||
PRIMARY KEY (c(767),d(767))) |
|||
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=2 CHARSET=ASCII; |
|||
CREATE TABLE t1( |
|||
c TEXT NOT NULL, d TEXT NOT NULL, |
|||
PRIMARY KEY (c(767),d(767))) |
|||
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4 CHARSET=ASCII; |
|||
drop table t1; |
|||
--error ER_TOO_BIG_ROWSIZE |
|||
CREATE TABLE t1(c TEXT, PRIMARY KEY (c(440))) |
|||
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII; |
|||
CREATE TABLE t1(c TEXT, PRIMARY KEY (c(438))) |
|||
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII; |
|||
INSERT INTO t1 VALUES(REPEAT('A',512)),(REPEAT('B',512)); |
|||
DROP TABLE t1; |
|||
|
|||
# |
|||
# Test blob column inheritance (mantis issue#36) |
|||
# |
|||
|
|||
create table t1( c1 int not null, c2 blob, c3 blob, c4 blob, |
|||
primary key(c1, c2(22), c3(22))) |
|||
engine = innodb row_format = dynamic; |
|||
begin; |
|||
insert into t1 values(1, repeat('A', 20000), repeat('B', 20000), |
|||
repeat('C', 20000)); |
|||
|
|||
update t1 set c3 = repeat('D', 20000) where c1 = 1; |
|||
commit; |
|||
|
|||
# one blob column which is unchanged in update and part of PK |
|||
# one blob column which is changed and part of of PK |
|||
# one blob column which is not part of PK and is unchanged |
|||
select count(*) from t1 where c2 = repeat('A', 20000); |
|||
select count(*) from t1 where c3 = repeat('D', 20000); |
|||
select count(*) from t1 where c4 = repeat('C', 20000); |
|||
|
|||
update t1 set c3 = repeat('E', 20000) where c1 = 1; |
|||
drop table t1; |
|||
|
|||
# |
|||
# |
|||
# Test innodb_file_format |
|||
# |
|||
set global innodb_file_format=`0`; |
|||
select @@innodb_file_format; |
|||
set global innodb_file_format=`1`; |
|||
select @@innodb_file_format; |
|||
-- error ER_WRONG_ARGUMENTS |
|||
set global innodb_file_format=`2`; |
|||
-- error ER_WRONG_ARGUMENTS |
|||
set global innodb_file_format=`-1`; |
|||
set global innodb_file_format=`Antelope`; |
|||
set global innodb_file_format=`Barracuda`; |
|||
-- error ER_WRONG_ARGUMENTS |
|||
set global innodb_file_format=`Cheetah`; |
|||
-- error ER_WRONG_ARGUMENTS |
|||
set global innodb_file_format=`abc`; |
|||
-- error ER_WRONG_ARGUMENTS |
|||
set global innodb_file_format=`1a`; |
|||
-- error ER_WRONG_ARGUMENTS |
|||
set global innodb_file_format=``; |
|||
|
|||
#test strict mode. |
|||
# this does not work anymore, has been removed from mysqltest |
|||
# -- enable_errors |
|||
set global innodb_file_per_table = on; |
|||
set global innodb_file_format = `1`; |
|||
|
|||
set innodb_strict_mode = off; |
|||
create table t1 (id int primary key) engine = innodb key_block_size = 0; |
|||
drop table t1; |
|||
|
|||
#set strict_mode |
|||
set innodb_strict_mode = on; |
|||
|
|||
#Test different values of KEY_BLOCK_SIZE |
|||
|
|||
--error ER_CANT_CREATE_TABLE |
|||
create table t1 (id int primary key) engine = innodb key_block_size = 0; |
|||
show warnings; |
|||
|
|||
--error ER_CANT_CREATE_TABLE |
|||
create table t2 (id int primary key) engine = innodb key_block_size = 9; |
|||
show warnings; |
|||
|
|||
|
|||
create table t3 (id int primary key) engine = innodb key_block_size = 1; |
|||
create table t4 (id int primary key) engine = innodb key_block_size = 2; |
|||
create table t5 (id int primary key) engine = innodb key_block_size = 4; |
|||
create table t6 (id int primary key) engine = innodb key_block_size = 8; |
|||
create table t7 (id int primary key) engine = innodb key_block_size = 16; |
|||
|
|||
#check various ROW_FORMAT values. |
|||
create table t8 (id int primary key) engine = innodb row_format = compressed; |
|||
create table t9 (id int primary key) engine = innodb row_format = dynamic; |
|||
create table t10(id int primary key) engine = innodb row_format = compact; |
|||
create table t11(id int primary key) engine = innodb row_format = redundant; |
|||
|
|||
SELECT table_schema, table_name, row_format |
|||
FROM information_schema.tables WHERE engine='innodb'; |
|||
drop table t3, t4, t5, t6, t7, t8, t9, t10, t11; |
|||
|
|||
#test different values of ROW_FORMAT with KEY_BLOCK_SIZE |
|||
create table t1 (id int primary key) engine = innodb |
|||
key_block_size = 8 row_format = compressed; |
|||
|
|||
--error ER_CANT_CREATE_TABLE |
|||
create table t2 (id int primary key) engine = innodb |
|||
key_block_size = 8 row_format = redundant; |
|||
show warnings; |
|||
|
|||
--error ER_CANT_CREATE_TABLE |
|||
create table t3 (id int primary key) engine = innodb |
|||
key_block_size = 8 row_format = compact; |
|||
show warnings; |
|||
|
|||
--error ER_CANT_CREATE_TABLE |
|||
create table t4 (id int primary key) engine = innodb |
|||
key_block_size = 8 row_format = dynamic; |
|||
show warnings; |
|||
|
|||
--error ER_CANT_CREATE_TABLE |
|||
create table t5 (id int primary key) engine = innodb |
|||
key_block_size = 8 row_format = default; |
|||
show warnings; |
|||
|
|||
SELECT table_schema, table_name, row_format |
|||
FROM information_schema.tables WHERE engine='innodb'; |
|||
drop table t1; |
|||
|
|||
#test multiple errors |
|||
--error ER_CANT_CREATE_TABLE |
|||
create table t1 (id int primary key) engine = innodb |
|||
key_block_size = 9 row_format = redundant; |
|||
show warnings; |
|||
|
|||
--error ER_CANT_CREATE_TABLE |
|||
create table t2 (id int primary key) engine = innodb |
|||
key_block_size = 9 row_format = compact; |
|||
show warnings; |
|||
|
|||
--error ER_CANT_CREATE_TABLE |
|||
create table t2 (id int primary key) engine = innodb |
|||
key_block_size = 9 row_format = dynamic; |
|||
show warnings; |
|||
|
|||
SELECT table_schema, table_name, row_format |
|||
FROM information_schema.tables WHERE engine='innodb'; |
|||
|
|||
#test valid values with innodb_file_per_table unset |
|||
set global innodb_file_per_table = off; |
|||
|
|||
--error ER_CANT_CREATE_TABLE |
|||
create table t1 (id int primary key) engine = innodb key_block_size = 1; |
|||
show warnings; |
|||
--error ER_CANT_CREATE_TABLE |
|||
create table t2 (id int primary key) engine = innodb key_block_size = 2; |
|||
show warnings; |
|||
--error ER_CANT_CREATE_TABLE |
|||
create table t3 (id int primary key) engine = innodb key_block_size = 4; |
|||
show warnings; |
|||
--error ER_CANT_CREATE_TABLE |
|||
create table t4 (id int primary key) engine = innodb key_block_size = 8; |
|||
show warnings; |
|||
--error ER_CANT_CREATE_TABLE |
|||
create table t5 (id int primary key) engine = innodb key_block_size = 16; |
|||
show warnings; |
|||
--error ER_CANT_CREATE_TABLE |
|||
create table t6 (id int primary key) engine = innodb row_format = compressed; |
|||
show warnings; |
|||
--error ER_CANT_CREATE_TABLE |
|||
create table t7 (id int primary key) engine = innodb row_format = dynamic; |
|||
show warnings; |
|||
create table t8 (id int primary key) engine = innodb row_format = compact; |
|||
create table t9 (id int primary key) engine = innodb row_format = redundant; |
|||
|
|||
SELECT table_schema, table_name, row_format |
|||
FROM information_schema.tables WHERE engine='innodb'; |
|||
drop table t8, t9; |
|||
|
|||
#test valid values with innodb_file_format unset |
|||
set global innodb_file_per_table = on; |
|||
set global innodb_file_format = `0`; |
|||
|
|||
--error ER_CANT_CREATE_TABLE |
|||
create table t1 (id int primary key) engine = innodb key_block_size = 1; |
|||
show warnings; |
|||
--error ER_CANT_CREATE_TABLE |
|||
create table t2 (id int primary key) engine = innodb key_block_size = 2; |
|||
show warnings; |
|||
--error ER_CANT_CREATE_TABLE |
|||
create table t3 (id int primary key) engine = innodb key_block_size = 4; |
|||
show warnings; |
|||
--error ER_CANT_CREATE_TABLE |
|||
create table t4 (id int primary key) engine = innodb key_block_size = 8; |
|||
show warnings; |
|||
--error ER_CANT_CREATE_TABLE |
|||
create table t5 (id int primary key) engine = innodb key_block_size = 16; |
|||
show warnings; |
|||
--error ER_CANT_CREATE_TABLE |
|||
create table t6 (id int primary key) engine = innodb row_format = compressed; |
|||
show warnings; |
|||
--error ER_CANT_CREATE_TABLE |
|||
create table t7 (id int primary key) engine = innodb row_format = dynamic; |
|||
show warnings; |
|||
create table t8 (id int primary key) engine = innodb row_format = compact; |
|||
create table t9 (id int primary key) engine = innodb row_format = redundant; |
|||
|
|||
SELECT table_schema, table_name, row_format |
|||
FROM information_schema.tables WHERE engine='innodb'; |
|||
drop table t8, t9; |
|||
|
|||
eval set global innodb_file_per_table=$per_table; |
|||
eval set global innodb_file_format=$format; |
|||
# |
|||
# Testing of tablespace tagging |
|||
# |
|||
-- disable_info |
|||
set global innodb_file_per_table=on; |
|||
set global innodb_file_format=`Barracuda`; |
|||
set global innodb_file_format_check=`Antelope`; |
|||
create table normal_table ( |
|||
c1 int |
|||
) engine = innodb; |
|||
select @@innodb_file_format_check; |
|||
create table zip_table ( |
|||
c1 int |
|||
) engine = innodb key_block_size = 8; |
|||
select @@innodb_file_format_check; |
|||
set global innodb_file_format_check=`Antelope`; |
|||
select @@innodb_file_format_check; |
|||
-- disable_result_log |
|||
show table status; |
|||
-- enable_result_log |
|||
select @@innodb_file_format_check; |
|||
drop table normal_table, zip_table; |
|||
-- disable_result_log |
|||
|
|||
# |
|||
# restore environment to the state it was before this test execution |
|||
# |
|||
|
|||
-- disable_query_log |
|||
eval set global innodb_file_format=$format; |
|||
eval set global innodb_file_per_table=$per_table; |
|||
eval set global innodb_file_format_check=$innodb_file_format_check_orig; |
|||
1159
mysql-test/suite/innodb/t/innodb_bug36169.test
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1,31 +0,0 @@ |
|||
# |
|||
# Test case for bug 36172 |
|||
# |
|||
|
|||
-- source include/not_embedded.inc |
|||
-- source include/have_innodb.inc |
|||
-- source suite/innodb/include/have_innodb_plugin.inc |
|||
|
|||
SET storage_engine=InnoDB; |
|||
|
|||
# we do not really care about what gets printed, we are only |
|||
# interested in getting success or failure according to our |
|||
# expectations |
|||
|
|||
-- disable_query_log |
|||
-- disable_result_log |
|||
|
|||
SET GLOBAL innodb_file_format='Barracuda'; |
|||
SET GLOBAL innodb_file_per_table=on; |
|||
|
|||
DROP TABLE IF EXISTS `table0`; |
|||
CREATE TABLE `table0` ( `col0` tinyint(1) DEFAULT NULL, `col1` tinyint(1) DEFAULT NULL, `col2` tinyint(4) DEFAULT NULL, `col3` date DEFAULT NULL, `col4` time DEFAULT NULL, `col5` set('test1','test2','test3') DEFAULT NULL, `col6` time DEFAULT NULL, `col7` text, `col8` decimal(10,0) DEFAULT NULL, `col9` set('test1','test2','test3') DEFAULT NULL, `col10` float DEFAULT NULL, `col11` double DEFAULT NULL, `col12` enum('test1','test2','test3') DEFAULT NULL, `col13` tinyblob, `col14` year(4) DEFAULT NULL, `col15` set('test1','test2','test3') DEFAULT NULL, `col16` decimal(10,0) DEFAULT NULL, `col17` decimal(10,0) DEFAULT NULL, `col18` blob, `col19` datetime DEFAULT NULL, `col20` double DEFAULT NULL, `col21` decimal(10,0) DEFAULT NULL, `col22` datetime DEFAULT NULL, `col23` decimal(10,0) DEFAULT NULL, `col24` decimal(10,0) DEFAULT NULL, `col25` longtext, `col26` tinyblob, `col27` time DEFAULT NULL, `col28` tinyblob, `col29` enum('test1','test2','test3') DEFAULT NULL, `col30` smallint(6) DEFAULT NULL, `col31` double DEFAULT NULL, `col32` float DEFAULT NULL, `col33` char(175) DEFAULT NULL, `col34` tinytext, `col35` tinytext, `col36` tinyblob, `col37` tinyblob, `col38` tinytext, `col39` mediumblob, `col40` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `col41` double DEFAULT NULL, `col42` smallint(6) DEFAULT NULL, `col43` longblob, `col44` varchar(80) DEFAULT NULL, `col45` mediumtext, `col46` decimal(10,0) DEFAULT NULL, `col47` bigint(20) DEFAULT NULL, `col48` date DEFAULT NULL, `col49` tinyblob, `col50` date DEFAULT NULL, `col51` tinyint(1) DEFAULT NULL, `col52` mediumint(9) DEFAULT NULL, `col53` float DEFAULT NULL, `col54` tinyblob, `col55` longtext, `col56` smallint(6) DEFAULT NULL, `col57` enum('test1','test2','test3') DEFAULT NULL, `col58` datetime DEFAULT NULL, `col59` mediumtext, `col60` varchar(232) DEFAULT NULL, `col61` decimal(10,0) DEFAULT NULL, `col62` year(4) DEFAULT NULL, `col63` smallint(6) DEFAULT NULL, `col64` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', `col65` blob, `col66` longblob, `col67` int(11) DEFAULT NULL, `col68` longtext, `col69` enum('test1','test2','test3') DEFAULT NULL, `col70` int(11) DEFAULT NULL, `col71` time DEFAULT NULL, `col72` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', `col73` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', `col74` varchar(170) DEFAULT NULL, `col75` set('test1','test2','test3') DEFAULT NULL, `col76` tinyblob, `col77` bigint(20) DEFAULT NULL, `col78` decimal(10,0) DEFAULT NULL, `col79` datetime DEFAULT NULL, `col80` year(4) DEFAULT NULL, `col81` decimal(10,0) DEFAULT NULL, `col82` longblob, `col83` text, `col84` char(83) DEFAULT NULL, `col85` decimal(10,0) DEFAULT NULL, `col86` float DEFAULT NULL, `col87` int(11) DEFAULT NULL, `col88` varchar(145) DEFAULT NULL, `col89` date DEFAULT NULL, `col90` decimal(10,0) DEFAULT NULL, `col91` decimal(10,0) DEFAULT NULL, `col92` mediumblob, `col93` time DEFAULT NULL, KEY `idx0` (`col69`,`col90`,`col8`), KEY `idx1` (`col60`), KEY `idx2` (`col60`,`col70`,`col74`), KEY `idx3` (`col22`,`col32`,`col72`,`col30`), KEY `idx4` (`col29`), KEY `idx5` (`col19`,`col45`(143)), KEY `idx6` (`col46`,`col48`,`col5`,`col39`(118)), KEY `idx7` (`col48`,`col61`), KEY `idx8` (`col93`), KEY `idx9` (`col31`), KEY `idx10` (`col30`,`col21`), KEY `idx11` (`col67`), KEY `idx12` (`col44`,`col6`,`col8`,`col38`(226)), KEY `idx13` (`col71`,`col41`,`col15`,`col49`(88)), KEY `idx14` (`col78`), KEY `idx15` (`col63`,`col67`,`col64`), KEY `idx16` (`col17`,`col86`), KEY `idx17` (`col77`,`col56`,`col10`,`col55`(24)), KEY `idx18` (`col62`), KEY `idx19` (`col31`,`col57`,`col56`,`col53`), KEY `idx20` (`col46`), KEY `idx21` (`col83`(54)), KEY `idx22` (`col51`,`col7`(120)), KEY `idx23` (`col7`(163),`col31`,`col71`,`col14`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=2; |
|||
insert ignore into `table0` set `col23` = 7887371.5084383683, `col24` = 4293854615.6906948000, `col25` = 'vitalist', `col26` = 'widespread', `col27` = '3570490', `col28` = 'habitual', `col30` = -5471, `col31` = 4286985783.6771750000, `col32` = 6354540.9826654866, `col33` = 'defoliation', `col34` = 'logarithms', `col35` = 'tegument\'s', `col36` = 'scouting\'s', `col37` = 'intermittency', `col38` = 'elongates', `col39` = 'prophecies', `col40` = '20560103035939', `col41` = 4292809130.0544143000, `col42` = 22057, `col43` = 'Hess\'s', `col44` = 'bandstand', `col45` = 'phenylketonuria', `col46` = 6338767.4018677324, `col47` = 5310247, `col48` = '12592418', `col49` = 'churchman\'s', `col50` = '32226125', `col51` = -58, `col52` = -6207968, `col53` = 1244839.3255104220, `col54` = 'robotized', `col55` = 'monotonous', `col56` = -26909, `col58` = '20720107023550', `col59` = 'suggestiveness\'s', `col60` = 'gemology', `col61` = 4287800670.2229986000, `col62` = '1944', `col63` = -16827, `col64` = '20700107212324', `col65` = 'Nicolais', `col66` = 'apteryx', `col67` = 6935317, `col68` = 'stroganoff', `col70` = 3316430, `col71` = '3277608', `col72` = '19300511045918', `col73` = '20421201003327', `col74` = 'attenuant', `col75` = '15173', `col76` = 'upstroke\'s', `col77` = 8118987, `col78` = 6791516.2735374002, `col79` = '20780701144624', `col80` = '2134', `col81` = 4290682351.3127537000, `col82` = 'unexplainably', `col83` = 'Storm', `col84` = 'Greyso\'s', `col85` = 4289119212.4306774000, `col86` = 7617575.8796655172, `col87` = -6325335, `col88` = 'fondue\'s', `col89` = '40608940', `col90` = 1659421.8093508712, `col91` = 8346904.6584368423, `col92` = 'reloads', `col93` = '5188366'; |
|||
CHECK TABLE table0 EXTENDED; |
|||
INSERT IGNORE INTO `table0` SET `col19` = '19940127002709', `col20` = 2383927.9055146948, `col21` = 4293243420.5621204000, `col22` = '20511211123705', `col23` = 4289899778.6573381000, `col24` = 4293449279.0540481000, `col25` = 'emphysemic', `col26` = 'dentally', `col27` = '2347406', `col28` = 'eruct', `col30` = 1222, `col31` = 4294372994.9941406000, `col32` = 4291385574.1173744000, `col33` = 'borrowing\'s', `col34` = 'septics', `col35` = 'ratter\'s', `col36` = 'Kaye', `col37` = 'Florentia', `col38` = 'allium', `col39` = 'barkeep', `col40` = '19510407003441', `col41` = 4293559200.4215522000, `col42` = 22482, `col43` = 'decussate', `col44` = 'Brom\'s', `col45` = 'violated', `col46` = 4925506.4635456400, `col47` = 930549, `col48` = '51296066', `col49` = 'voluminously', `col50` = '29306676', `col51` = -88, `col52` = -2153690, `col53` = 4290250202.1464887000, `col54` = 'expropriation', `col55` = 'Aberdeen\'s', `col56` = 20343, `col58` = '19640415171532', `col59` = 'extern', `col60` = 'Ubana', `col61` = 4290487961.8539081000, `col62` = '2147', `col63` = -24271, `col64` = '20750801194548', `col65` = 'Cunaxa\'s', `col66` = 'pasticcio', `col67` = 2795817, `col68` = 'Indore\'s', `col70` = 6864127, `col71` = '1817832', `col72` = '20540506114211', `col73` = '20040101012300', `col74` = 'rationalized', `col75` = '45522', `col76` = 'indene', `col77` = -6964559, `col78` = 4247535.5266884370, `col79` = '20720416124357', `col80` = '2143', `col81` = 4292060102.4466386000, `col82` = 'striving', `col83` = 'boneblack\'s', `col84` = 'redolent', `col85` = 6489697.9009369183, `col86` = 4287473465.9731131000, `col87` = 7726015, `col88` = 'perplexed', `col89` = '17153791', `col90` = 5478587.1108127078, `col91` = 4287091404.7004304000, `col92` = 'Boulez\'s', `col93` = '2931278'; |
|||
CHECK TABLE table0 EXTENDED; |
|||
DROP TABLE table0; |
|||
|
|||
SET GLOBAL innodb_file_per_table=DEFAULT; |
|||
SET GLOBAL innodb_file_format='Antelope'; |
|||
SET GLOBAL innodb_file_format_check='Antelope'; |
|||
@ -1,16 +0,0 @@ |
|||
# |
|||
# Make sure http://bugs.mysql.com/40360 remains fixed. |
|||
# |
|||
|
|||
-- source include/not_embedded.inc |
|||
-- source include/have_innodb.inc |
|||
|
|||
SET TX_ISOLATION='READ-COMMITTED'; |
|||
|
|||
# This is the default since MySQL 5.1.29 SET BINLOG_FORMAT='STATEMENT'; |
|||
|
|||
CREATE TABLE bug40360 (a INT) engine=innodb; |
|||
|
|||
INSERT INTO bug40360 VALUES (1); |
|||
|
|||
DROP TABLE bug40360; |
|||
@ -1,14 +0,0 @@ |
|||
# |
|||
# Make sure http://bugs.mysql.com/41904 remains fixed. |
|||
# |
|||
|
|||
-- source include/not_embedded.inc |
|||
-- source include/have_innodb.inc |
|||
|
|||
CREATE TABLE bug41904 (id INT PRIMARY KEY, uniquecol CHAR(15)) ENGINE=InnoDB; |
|||
|
|||
INSERT INTO bug41904 VALUES (1,NULL), (2,NULL); |
|||
|
|||
CREATE UNIQUE INDEX ui ON bug41904 (uniquecol); |
|||
|
|||
DROP TABLE bug41904; |
|||
@ -1,13 +0,0 @@ |
|||
# Bug44032 no update-in-place of UTF-8 columns in ROW_FORMAT=REDUNDANT |
|||
# (btr_cur_update_in_place not invoked when updating from/to NULL; |
|||
# the update is performed by delete and insert instead) |
|||
|
|||
-- source include/have_innodb.inc |
|||
|
|||
CREATE TABLE bug44032(c CHAR(3) CHARACTER SET UTF8) ROW_FORMAT=REDUNDANT |
|||
ENGINE=InnoDB; |
|||
INSERT INTO bug44032 VALUES('abc'),(0xEFBCA4EFBCA4EFBCA4); |
|||
UPDATE bug44032 SET c='DDD' WHERE c=0xEFBCA4EFBCA4EFBCA4; |
|||
UPDATE bug44032 SET c=NULL WHERE c='DDD'; |
|||
UPDATE bug44032 SET c='DDD' WHERE c IS NULL; |
|||
DROP TABLE bug44032; |
|||
@ -1,23 +0,0 @@ |
|||
# |
|||
# Bug#44571 InnoDB Plugin crashes on ADD INDEX |
|||
# http://bugs.mysql.com/44571 |
|||
# Please also refer to related fix in |
|||
# http://bugs.mysql.com/47621 |
|||
# |
|||
-- source include/have_innodb.inc |
|||
-- source suite/innodb/include/have_innodb_plugin.inc |
|||
|
|||
CREATE TABLE bug44571 (foo INT) ENGINE=InnoDB; |
|||
ALTER TABLE bug44571 CHANGE foo bar INT; |
|||
# Create index with the old column name will fail, |
|||
# because the CHANGE foo bar is successful. And |
|||
# the column name change would communicate to |
|||
# InnoDB with the fix from bug #47621 |
|||
-- error ER_KEY_COLUMN_DOES_NOT_EXITS |
|||
ALTER TABLE bug44571 ADD INDEX bug44571b (foo); |
|||
# The following create indexes should succeed, |
|||
# indirectly confirm the CHANGE foo bar is successful. |
|||
ALTER TABLE bug44571 ADD INDEX bug44571c (bar); |
|||
DROP INDEX bug44571c ON bug44571; |
|||
CREATE INDEX bug44571c ON bug44571 (bar); |
|||
DROP TABLE bug44571; |
|||
@ -1,16 +0,0 @@ |
|||
# This is the test for bug 46676: mysqld got exception 0xc0000005 |
|||
# It is reproducible with InnoDB plugin 1.0.4 + MySQL 5.1.37. |
|||
# But no longer reproducible after MySQL 5.1.38 (with plugin 1.0.5). |
|||
|
|||
--source include/have_innodb.inc |
|||
|
|||
SET foreign_key_checks=0; |
|||
CREATE TABLE t1 (id int, foreign key (id) references t2(id)) ENGINE=INNODB; |
|||
CREATE TABLE t2 (id int, foreign key (id) references t1(id)) ENGINE=INNODB; |
|||
SET foreign_key_checks=1; |
|||
|
|||
# Server crashes |
|||
SELECT COUNT(*) FROM information_schema.key_column_usage WHERE REFERENCED_TABLE_NAME in ('t1', 't2'); |
|||
|
|||
SET foreign_key_checks=0; |
|||
DROP TABLE t1, t2; |
|||
@ -1,46 +0,0 @@ |
|||
# This is the unit test for bug *47167. |
|||
# It tests setting the global variable |
|||
# "innodb_file_format_check" with a |
|||
# user-Defined Variable. |
|||
|
|||
--source include/have_innodb.inc |
|||
-- source suite/innodb/include/have_innodb_plugin.inc |
|||
|
|||
# Save the value (Antelope) in 'innodb_file_format_check' to |
|||
# 'old_innodb_file_format_check' |
|||
set @old_innodb_file_format_check=@@innodb_file_format_check; |
|||
|
|||
# @old_innodb_file_format_check shall have the value of 'Antelope' |
|||
select @old_innodb_file_format_check; |
|||
|
|||
# Reset the value in 'innodb_file_format_check' to 'Barracuda' |
|||
set global innodb_file_format_check = Barracuda; |
|||
|
|||
select @@innodb_file_format_check; |
|||
|
|||
# Set 'innodb_file_format_check' to its default value, which |
|||
# is the latest file format supported in the current release. |
|||
set global innodb_file_format_check = DEFAULT; |
|||
|
|||
select @@innodb_file_format_check; |
|||
|
|||
# Put the saved value back to 'innodb_file_format_check' |
|||
set global innodb_file_format_check = @old_innodb_file_format_check; |
|||
|
|||
# Check whether 'innodb_file_format_check' get its original value. |
|||
select @@innodb_file_format_check; |
|||
|
|||
# Following are negative tests, all should fail. |
|||
--disable_warnings |
|||
--error ER_WRONG_ARGUMENTS |
|||
set global innodb_file_format_check = cheetah; |
|||
|
|||
--error ER_WRONG_ARGUMENTS |
|||
set global innodb_file_format_check = Bear; |
|||
|
|||
--error ER_WRONG_ARGUMENTS |
|||
set global innodb_file_format_check = on; |
|||
|
|||
--error ER_WRONG_ARGUMENTS |
|||
set global innodb_file_format_check = off; |
|||
--enable_warnings |
|||
@ -1,55 +0,0 @@ |
|||
# This is the test for bug 47622. There could be index |
|||
# metadata sequence mismatch between MySQL and Innodb |
|||
# after creating index through FIC interfaces. |
|||
# We resolve the problem by sync the index sequence |
|||
# up when opening the table. |
|||
|
|||
--source include/have_innodb.inc |
|||
|
|||
connect (a,localhost,root,,); |
|||
connect (b,localhost,root,,); |
|||
|
|||
# Create a table with a non-unique index |
|||
CREATE TABLE bug47622( |
|||
`rule_key` int(11) NOT NULL DEFAULT '0', |
|||
`seq` smallint(6) NOT NULL DEFAULT '0', |
|||
`action` smallint(6) NOT NULL DEFAULT '0', |
|||
`arg_id` smallint(6) DEFAULT NULL, |
|||
`else_ind` TINYINT NOT NULL, |
|||
KEY IDX_A (`arg_id`) |
|||
) ENGINE=InnoDB; |
|||
|
|||
connection a; |
|||
|
|||
# A subsequent creating unique index should not trigger |
|||
# any error message. Unique index would be ranked ahead |
|||
# of regular index. |
|||
ALTER TABLE bug47622 ADD UNIQUE IDX_B (rule_key,else_ind,seq,action,arg_id); |
|||
|
|||
drop index IDX_B on bug47622; |
|||
|
|||
# In another connection, create additional set of normal |
|||
# index and unique index. Again, unique index would be ranked |
|||
# ahead of regular index. |
|||
connection b; |
|||
create index idx on bug47622(seq, arg_id); |
|||
|
|||
ALTER TABLE bug47622 ADD UNIQUE IDX_X (rule_key,else_ind,seq,action); |
|||
|
|||
drop table bug47622; |
|||
|
|||
# Create a table with one Primary key and a non-unique key |
|||
CREATE TABLE bug47622 ( |
|||
`a` int(11) NOT NULL, |
|||
`b` int(11) DEFAULT NULL, |
|||
`c` char(10) DEFAULT NULL, |
|||
`d` varchar(20) DEFAULT NULL, |
|||
PRIMARY KEY (`a`), |
|||
KEY `b` (`b`) |
|||
) ENGINE=InnoDB; |
|||
|
|||
# Add two index with one unique and one non-unique. |
|||
# Index sequence is "PRIMARY", "c", "b" and "d" |
|||
alter table bug47622 add unique index (c), add index (d); |
|||
|
|||
drop table bug47622; |
|||
@ -1,77 +0,0 @@ |
|||
# This is the test for bug 51378. Unique index created |
|||
# through "create index" and "alter table add unique index" |
|||
# interfaces should not be treated as primary index if indexed |
|||
# columns contain one or more column prefix(es) (only prefix/part of |
|||
# the column is indexed) |
|||
# On the other hand, if there is a unique index covers all |
|||
# columns of a table, and they are non-null columns, and |
|||
# full length of the column are indexed, then this index |
|||
# will be created as primary index |
|||
# Following queries test various scenario, no mismatch |
|||
# error message should be printed. |
|||
--source include/have_innodb.inc |
|||
|
|||
# Create a table contains a BLOB column |
|||
create table bug51378 ( |
|||
col1 int not null, |
|||
col2 blob not null, |
|||
col3 time not null) engine = innodb; |
|||
|
|||
# Create following unique indexes on 'col1' and 'col2(31)' |
|||
# of the table, the index should not be treated as primary |
|||
# key because it indexes only first 31 bytes of col2. |
|||
# Thus it contains "column prefix", and will not be |
|||
# upgraded to primary index. |
|||
# There should not be mismatch message printed in the |
|||
# errorlog |
|||
create unique index idx on bug51378(col1, col2(31)); |
|||
|
|||
alter table bug51378 add unique index idx2(col1, col2(31)); |
|||
|
|||
# Unique index on 'col1' and 'col3' will be created as primary index, |
|||
# since the index does not contain column prefix |
|||
create unique index idx3 on bug51378(col1, col3); |
|||
|
|||
# Show create table would show idx3 created as unique index, internally, |
|||
# idx3 is treated as primary index both by MySQL and Innodb |
|||
SHOW CREATE TABLE bug51378; |
|||
|
|||
# "GEN_CLUST_INDEX" will be re-created as default primary index |
|||
# after idx3 is dropped |
|||
drop index idx3 on bug51378; |
|||
|
|||
SHOW CREATE TABLE bug51378; |
|||
|
|||
# Or we can add the primary key through alter table interfaces |
|||
alter table bug51378 add primary key idx3(col1, col2(31)); |
|||
|
|||
SHOW CREATE TABLE bug51378; |
|||
|
|||
drop table bug51378; |
|||
|
|||
# Or we can create such primary key through create table interfaces |
|||
create table bug51378 ( |
|||
col1 int not null, |
|||
col2 blob not null, |
|||
col3 time not null, primary key(col1, col2(31))) engine = innodb; |
|||
|
|||
# Unique index on one or more column prefix(es) will be created |
|||
# as non-cluster index |
|||
create unique index idx on bug51378(col1, col2(31)); |
|||
|
|||
SHOW CREATE TABLE bug51378; |
|||
|
|||
drop table bug51378; |
|||
|
|||
# If a table has a NULLABLE column, unique index on it will not |
|||
# be treated as primary index. |
|||
create table bug51378 ( |
|||
col1 int not null, |
|||
col2 int ) engine = innodb; |
|||
|
|||
# This will be created as non-cluster index since col2 is nullable |
|||
create unique index idx on bug51378(col1, col2); |
|||
|
|||
SHOW CREATE TABLE bug51378; |
|||
|
|||
drop table bug51378; |
|||
@ -1,43 +0,0 @@ |
|||
-- source include/have_innodb.inc |
|||
-- source suite/innodb/include/have_innodb_plugin.inc |
|||
|
|||
call mtr.add_suppression("InnoDB: invalid innodb_file_format_check value"); |
|||
|
|||
let $format=`select @@innodb_file_format`; |
|||
let $innodb_file_format_check_orig=`select @@innodb_file_format_check`; |
|||
|
|||
select @@innodb_file_format; |
|||
select @@innodb_file_format_check; |
|||
set global innodb_file_format=antelope; |
|||
set global innodb_file_format=barracuda; |
|||
--error ER_WRONG_ARGUMENTS |
|||
set global innodb_file_format=cheetah; |
|||
select @@innodb_file_format; |
|||
set global innodb_file_format=default; |
|||
select @@innodb_file_format; |
|||
--error ER_WRONG_ARGUMENTS |
|||
set global innodb_file_format=on; |
|||
--error ER_WRONG_ARGUMENTS |
|||
set global innodb_file_format=off; |
|||
select @@innodb_file_format; |
|||
set global innodb_file_format_check=antelope; |
|||
set global innodb_file_format_check=barracuda; |
|||
--error ER_WRONG_ARGUMENTS |
|||
set global innodb_file_format_check=cheetah; |
|||
select @@innodb_file_format_check; |
|||
set global innodb_file_format_check=default; |
|||
select @@innodb_file_format_check; |
|||
--error ER_WRONG_ARGUMENTS |
|||
set global innodb_file_format=on; |
|||
--error ER_WRONG_ARGUMENTS |
|||
set global innodb_file_format=off; |
|||
select @@innodb_file_format_check; |
|||
|
|||
# |
|||
# restore environment to the state it was before this test execution |
|||
# |
|||
|
|||
-- disable_query_log |
|||
eval set global innodb_file_format=$format; |
|||
eval set global innodb_file_format_check=$innodb_file_format_check_orig; |
|||
-- enable_query_log |
|||
@ -1,150 +0,0 @@ |
|||
# |
|||
# Test that user data is correctly "visualized" in |
|||
# INFORMATION_SCHEMA.innodb_locks.lock_data |
|||
# |
|||
|
|||
-- source include/have_innodb.inc |
|||
-- source suite/innodb/include/have_innodb_plugin.inc |
|||
|
|||
-- disable_query_log |
|||
-- disable_result_log |
|||
|
|||
SET storage_engine=InnoDB; |
|||
|
|||
-- disable_warnings |
|||
DROP TABLE IF EXISTS t_min, t_max; |
|||
-- enable_warnings |
|||
|
|||
let $table_def = |
|||
( |
|||
c01 TINYINT, |
|||
c02 TINYINT UNSIGNED, |
|||
c03 SMALLINT, |
|||
c04 SMALLINT UNSIGNED, |
|||
c05 MEDIUMINT, |
|||
c06 MEDIUMINT UNSIGNED, |
|||
c07 INT, |
|||
c08 INT UNSIGNED, |
|||
c09 BIGINT, |
|||
c10 BIGINT UNSIGNED, |
|||
PRIMARY KEY(c01, c02, c03, c04, c05, c06, c07, c08, c09, c10) |
|||
); |
|||
|
|||
-- eval CREATE TABLE t_min $table_def; |
|||
INSERT INTO t_min VALUES |
|||
(-128, 0, |
|||
-32768, 0, |
|||
-8388608, 0, |
|||
-2147483648, 0, |
|||
-9223372036854775808, 0); |
|||
|
|||
-- eval CREATE TABLE t_max $table_def; |
|||
INSERT INTO t_max VALUES |
|||
(127, 255, |
|||
32767, 65535, |
|||
8388607, 16777215, |
|||
2147483647, 4294967295, |
|||
9223372036854775807, 18446744073709551615); |
|||
|
|||
CREATE TABLE ```t'\"_str` ( |
|||
c1 VARCHAR(32), |
|||
c2 VARCHAR(32), |
|||
c3 VARCHAR(32), |
|||
c4 VARCHAR(32), |
|||
c5 VARCHAR(32), |
|||
c6 VARCHAR(32), |
|||
c7 VARCHAR(32), |
|||
PRIMARY KEY(c1, c2, c3, c4, c5, c6, c7) |
|||
); |
|||
INSERT INTO ```t'\"_str` VALUES |
|||
('1', 'abc', '''abc', 'abc''', 'a''bc', 'a''bc''', '''abc'''''); |
|||
INSERT INTO ```t'\"_str` VALUES |
|||
('2', 'abc', '"abc', 'abc"', 'a"bc', 'a"bc"', '"abc""'); |
|||
INSERT INTO ```t'\"_str` VALUES |
|||
('3', 'abc', '\\abc', 'abc\\', 'a\\bc', 'a\\bc\\', '\\abc\\\\'); |
|||
INSERT INTO ```t'\"_str` VALUES |
|||
('4', 'abc', 0x00616263, 0x61626300, 0x61006263, 0x6100626300, 0x610062630000); |
|||
|
|||
-- connect (con_lock,localhost,root,,) |
|||
-- connect (con_min_trylock,localhost,root,,) |
|||
-- connect (con_max_trylock,localhost,root,,) |
|||
-- connect (con_str_insert_supremum,localhost,root,,) |
|||
-- connect (con_str_lock_row1,localhost,root,,) |
|||
-- connect (con_str_lock_row2,localhost,root,,) |
|||
-- connect (con_str_lock_row3,localhost,root,,) |
|||
-- connect (con_str_lock_row4,localhost,root,,) |
|||
-- connect (con_verify_innodb_locks,localhost,root,,) |
|||
|
|||
-- connection con_lock |
|||
SET autocommit=0; |
|||
SELECT * FROM t_min FOR UPDATE; |
|||
SELECT * FROM t_max FOR UPDATE; |
|||
SELECT * FROM ```t'\"_str` FOR UPDATE; |
|||
|
|||
-- connection con_min_trylock |
|||
-- send |
|||
SELECT * FROM t_min FOR UPDATE; |
|||
|
|||
-- connection con_max_trylock |
|||
-- send |
|||
SELECT * FROM t_max FOR UPDATE; |
|||
|
|||
-- connection con_str_insert_supremum |
|||
-- send |
|||
INSERT INTO ```t'\"_str` VALUES |
|||
('z', 'z', 'z', 'z', 'z', 'z', 'z'); |
|||
|
|||
-- connection con_str_lock_row1 |
|||
-- send |
|||
SELECT * FROM ```t'\"_str` WHERE c1 = '1' FOR UPDATE; |
|||
|
|||
-- connection con_str_lock_row2 |
|||
-- send |
|||
SELECT * FROM ```t'\"_str` WHERE c1 = '2' FOR UPDATE; |
|||
|
|||
-- connection con_str_lock_row3 |
|||
-- send |
|||
SELECT * FROM ```t'\"_str` WHERE c1 = '3' FOR UPDATE; |
|||
|
|||
-- connection con_str_lock_row4 |
|||
-- send |
|||
SELECT * FROM ```t'\"_str` WHERE c1 = '4' FOR UPDATE; |
|||
|
|||
-- enable_result_log |
|||
-- connection con_verify_innodb_locks |
|||
# Wait for the above queries to execute before continuing. |
|||
# Without this, it sometimes happens that the SELECT from innodb_locks |
|||
# executes before some of them, resulting in less than expected number |
|||
# of rows being selected from innodb_locks. If there is a bug and there |
|||
# are no 14 rows in innodb_locks then this test will fail with timeout. |
|||
let $count = 14; |
|||
let $table = INFORMATION_SCHEMA.INNODB_LOCKS; |
|||
-- source include/wait_until_rows_count.inc |
|||
# the above enables the query log, re-disable it |
|||
-- disable_query_log |
|||
SELECT lock_mode, lock_type, lock_table, lock_index, lock_rec, lock_data |
|||
FROM INFORMATION_SCHEMA.INNODB_LOCKS ORDER BY lock_data; |
|||
|
|||
SELECT lock_table,COUNT(*) FROM INFORMATION_SCHEMA.INNODB_LOCKS |
|||
GROUP BY lock_table; |
|||
|
|||
set @save_sql_mode = @@sql_mode; |
|||
SET SQL_MODE='ANSI_QUOTES'; |
|||
SELECT lock_table,COUNT(*) FROM INFORMATION_SCHEMA.INNODB_LOCKS |
|||
GROUP BY lock_table; |
|||
SET @@sql_mode=@save_sql_mode; |
|||
-- disable_result_log |
|||
|
|||
-- connection default |
|||
|
|||
-- disconnect con_lock |
|||
-- disconnect con_min_trylock |
|||
-- disconnect con_max_trylock |
|||
-- disconnect con_str_insert_supremum |
|||
-- disconnect con_str_lock_row1 |
|||
-- disconnect con_str_lock_row2 |
|||
-- disconnect con_str_lock_row3 |
|||
-- disconnect con_str_lock_row4 |
|||
-- disconnect con_verify_innodb_locks |
|||
|
|||
DROP TABLE t_min, t_max, ```t'\"_str`; |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue