mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge build.mysql.com:/users/tulin/mysql-5.0
into build.mysql.com:/users/tulin/mysql-5.0-ndb sql/sql_analyse.cc: Auto merged
This commit is contained in:
@ -53,3 +53,71 @@ key1 key2 str1 zeroval str2 str3
|
||||
1 199 aaa 0 bbb 199-0_A
|
||||
0 200 aaa 0 bbb 200-0_a
|
||||
drop table t1;
|
||||
create table t1 (
|
||||
pk integer not null auto_increment primary key,
|
||||
key1 integer,
|
||||
key2 integer not null,
|
||||
filler char (200),
|
||||
index (key1),
|
||||
index (key2)
|
||||
) engine=innodb;
|
||||
show warnings;
|
||||
Level Code Message
|
||||
explain select pk from t1 where key1 = 1 and key2 = 1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index_merge key1,key2 key1,key2 5,4 NULL 1 Using intersect(key1,key2); Using where; Using index
|
||||
select pk from t1 where key2 = 1 and key1 = 1;
|
||||
pk
|
||||
26
|
||||
select pk from t1 ignore index(key1,key2) where key2 = 1 and key1 = 1;
|
||||
pk
|
||||
26
|
||||
drop table t1;
|
||||
create table t1 (
|
||||
pk int primary key auto_increment,
|
||||
key1a int,
|
||||
key2a int,
|
||||
key1b int,
|
||||
key2b int,
|
||||
dummy1 int,
|
||||
dummy2 int,
|
||||
dummy3 int,
|
||||
dummy4 int,
|
||||
key3a int,
|
||||
key3b int,
|
||||
filler1 char (200),
|
||||
index i1(key1a, key1b),
|
||||
index i2(key2a, key2b),
|
||||
index i3(key3a, key3b)
|
||||
) engine=innodb;
|
||||
create table t2 (a int);
|
||||
insert into t2 values (0),(1),(2),(3),(4),(NULL);
|
||||
insert into t1 (key1a, key1b, key2a, key2b, key3a, key3b)
|
||||
select A.a, B.a, C.a, D.a, C.a, D.a from t2 A,t2 B,t2 C, t2 D;
|
||||
insert into t1 (key1a, key1b, key2a, key2b, key3a, key3b)
|
||||
select key1a, key1b, key2a, key2b, key3a, key3b from t1;
|
||||
insert into t1 (key1a, key1b, key2a, key2b, key3a, key3b)
|
||||
select key1a, key1b, key2a, key2b, key3a, key3b from t1;
|
||||
analyze table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status OK
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
5184
|
||||
explain select count(*) from t1 where
|
||||
key1a = 2 and key1b is null and key2a = 2 and key2b is null;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index_merge i1,i2 i1,i2 10,10 NULL 3 Using intersect(i1,i2); Using where; Using index
|
||||
select count(*) from t1 where
|
||||
key1a = 2 and key1b is null and key2a = 2 and key2b is null;
|
||||
count(*)
|
||||
4
|
||||
explain select count(*) from t1 where
|
||||
key1a = 2 and key1b is null and key3a = 2 and key3b is null;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index_merge i1,i3 i1,i3 10,10 NULL 3 Using intersect(i1,i3); Using where; Using index
|
||||
select count(*) from t1 where
|
||||
key1a = 2 and key1b is null and key3a = 2 and key3b is null;
|
||||
count(*)
|
||||
4
|
||||
drop table t1,t2;
|
||||
|
@ -77,7 +77,7 @@ select @@session.max_user_connections, @@global.max_user_connections;
|
||||
select * from t1;
|
||||
i
|
||||
connect(localhost,mysqltest_1,,test,MYSQL_PORT,MYSQL_SOCK);
|
||||
ERROR 42000: User mysqltest_1 has already more than 'max_user_connections' active connections
|
||||
ERROR 42000: User mysqltest_1 already has more than 'max_user_connections' active connections
|
||||
grant usage on *.* to mysqltest_1@localhost with max_user_connections 3;
|
||||
select @@session.max_user_connections, @@global.max_user_connections;
|
||||
@@session.max_user_connections @@global.max_user_connections
|
||||
|
@ -38,6 +38,11 @@ select * from t2;
|
||||
insert into t2 select * from t1 procedure analyse();
|
||||
select * from t2;
|
||||
drop table t1,t2;
|
||||
|
||||
#
|
||||
# Bug#2813 - analyse does not quote string values in enums from string
|
||||
#
|
||||
|
||||
create table t1 (v varchar(128));
|
||||
insert into t1 values ('abc'),('abc\'def\\hij\"klm\0opq'),('\''),('\"'),('\\'),('a\0'),('b\''),('c\"'),('d\\'),('\'b'),('\"c'),('\\d'),('a\0\0\0b'),('a\'\'\'\'b'),('a\"\"\"\"b'),('a\\\\\\\\b'),('\'\0\\\"'),('\'\''),('\"\"'),('\\\\'),('The\ZEnd');
|
||||
select * from t1 procedure analyse();
|
||||
|
@ -51,4 +51,72 @@ select * from t1 where key1 < 5 or key2 > 197;
|
||||
explain select * from t1 where key1 < 3 or key2 > 195;
|
||||
select * from t1 where key1 < 3 or key2 > 195;
|
||||
|
||||
# Test for BUG#5401
|
||||
drop table t1;
|
||||
create table t1 (
|
||||
pk integer not null auto_increment primary key,
|
||||
key1 integer,
|
||||
key2 integer not null,
|
||||
filler char (200),
|
||||
index (key1),
|
||||
index (key2)
|
||||
) engine=innodb;
|
||||
show warnings;
|
||||
--disable_query_log
|
||||
let $1=30;
|
||||
while ($1)
|
||||
{
|
||||
eval insert into t1 (key1, key2, filler) values ($1/4, $1/8, 'filler-data');
|
||||
dec $1;
|
||||
}
|
||||
--enable_query_log
|
||||
explain select pk from t1 where key1 = 1 and key2 = 1;
|
||||
select pk from t1 where key2 = 1 and key1 = 1;
|
||||
select pk from t1 ignore index(key1,key2) where key2 = 1 and key1 = 1;
|
||||
|
||||
# More tests for BUG#5401.
|
||||
drop table t1;
|
||||
create table t1 (
|
||||
pk int primary key auto_increment,
|
||||
key1a int,
|
||||
key2a int,
|
||||
key1b int,
|
||||
key2b int,
|
||||
dummy1 int,
|
||||
dummy2 int,
|
||||
dummy3 int,
|
||||
dummy4 int,
|
||||
key3a int,
|
||||
key3b int,
|
||||
filler1 char (200),
|
||||
index i1(key1a, key1b),
|
||||
index i2(key2a, key2b),
|
||||
index i3(key3a, key3b)
|
||||
) engine=innodb;
|
||||
|
||||
create table t2 (a int);
|
||||
insert into t2 values (0),(1),(2),(3),(4),(NULL);
|
||||
|
||||
insert into t1 (key1a, key1b, key2a, key2b, key3a, key3b)
|
||||
select A.a, B.a, C.a, D.a, C.a, D.a from t2 A,t2 B,t2 C, t2 D;
|
||||
insert into t1 (key1a, key1b, key2a, key2b, key3a, key3b)
|
||||
select key1a, key1b, key2a, key2b, key3a, key3b from t1;
|
||||
insert into t1 (key1a, key1b, key2a, key2b, key3a, key3b)
|
||||
select key1a, key1b, key2a, key2b, key3a, key3b from t1;
|
||||
analyze table t1;
|
||||
select count(*) from t1;
|
||||
|
||||
explain select count(*) from t1 where
|
||||
key1a = 2 and key1b is null and key2a = 2 and key2b is null;
|
||||
|
||||
select count(*) from t1 where
|
||||
key1a = 2 and key1b is null and key2a = 2 and key2b is null;
|
||||
|
||||
explain select count(*) from t1 where
|
||||
key1a = 2 and key1b is null and key3a = 2 and key3b is null;
|
||||
|
||||
select count(*) from t1 where
|
||||
key1a = 2 and key1b is null and key3a = 2 and key3b is null;
|
||||
|
||||
drop table t1,t2;
|
||||
|
||||
|
Reference in New Issue
Block a user