mirror of
https://github.com/MariaDB/server.git
synced 2025-09-02 09:41:40 +03:00
bzr merge -rtag:mariadb-10.0.12 maria/10.0
This commit is contained in:
@@ -1460,6 +1460,33 @@ t2 CREATE TABLE `t2` (
|
||||
KEY `id` (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
DROP TABLE t2;
|
||||
CREATE TABLE t2 (
|
||||
id INT(11) NOT NULL);
|
||||
ALTER TABLE t2 ADD COLUMN a INT, ADD COLUMN IF NOT EXISTS a INT;
|
||||
Warnings:
|
||||
Note 1060 Duplicate column name 'a'
|
||||
ALTER TABLE t2 ADD KEY k_id(id), ADD KEY IF NOT EXISTS k_id(id);
|
||||
Warnings:
|
||||
Note 1061 Duplicate key name 'k_id'
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`id` int(11) NOT NULL,
|
||||
`a` int(11) DEFAULT NULL,
|
||||
KEY `k_id` (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
ALTER TABLE t2 DROP KEY k_id, DROP KEY IF EXISTS k_id;
|
||||
Warnings:
|
||||
Note 1091 Can't DROP 'k_id'; check that column/key exists
|
||||
ALTER TABLE t2 DROP COLUMN a, DROP COLUMN IF EXISTS a;
|
||||
Warnings:
|
||||
Note 1091 Can't DROP 'a'; check that column/key exists
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`id` int(11) NOT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t2;
|
||||
DROP TABLE t1;
|
||||
# Bug#11748057 (formerly known as 34972): ALTER TABLE statement doesn't
|
||||
# identify correct column name.
|
||||
|
@@ -78,7 +78,7 @@ cast(cast(20010203101112.121314 as double) as datetime)
|
||||
2001-02-03 10:11:12
|
||||
select cast(cast(010203101112.12 as double) as datetime);
|
||||
cast(cast(010203101112.12 as double) as datetime)
|
||||
0001-02-03 10:11:12
|
||||
2001-02-03 10:11:12
|
||||
select cast(cast(20010203101112.121314 as decimal(32,6)) as datetime);
|
||||
cast(cast(20010203101112.121314 as decimal(32,6)) as datetime)
|
||||
2001-02-03 10:11:12
|
||||
@@ -87,10 +87,10 @@ cast(20010203101112.121314 as datetime)
|
||||
2001-02-03 10:11:12
|
||||
select cast(110203101112.121314 as datetime);
|
||||
cast(110203101112.121314 as datetime)
|
||||
0011-02-03 10:11:12
|
||||
2011-02-03 10:11:12
|
||||
select cast(cast(010203101112.12 as double) as datetime);
|
||||
cast(cast(010203101112.12 as double) as datetime)
|
||||
0001-02-03 10:11:12
|
||||
2001-02-03 10:11:12
|
||||
select cast("2011-02-03 10:11:12.123456" as datetime);
|
||||
cast("2011-02-03 10:11:12.123456" as datetime)
|
||||
2011-02-03 10:11:12
|
||||
@@ -111,7 +111,7 @@ cast(cast(20010203101112.5 as double) as datetime(1))
|
||||
2001-02-03 10:11:12.5
|
||||
select cast(cast(010203101112.12 as double) as datetime(2));
|
||||
cast(cast(010203101112.12 as double) as datetime(2))
|
||||
0001-02-03 10:11:12.12
|
||||
2001-02-03 10:11:12.12
|
||||
select cast(cast(20010203101112.121314 as decimal(32,6)) as datetime(6));
|
||||
cast(cast(20010203101112.121314 as decimal(32,6)) as datetime(6))
|
||||
2001-02-03 10:11:12.121314
|
||||
@@ -120,10 +120,10 @@ cast(20010203101112.121314 as datetime(6))
|
||||
2001-02-03 10:11:12.121314
|
||||
select cast(110203101112.121314 as datetime(6));
|
||||
cast(110203101112.121314 as datetime(6))
|
||||
0011-02-03 10:11:12.121314
|
||||
2011-02-03 10:11:12.121314
|
||||
select cast(cast(010203101112.12 as double) as datetime(6));
|
||||
cast(cast(010203101112.12 as double) as datetime(6))
|
||||
0001-02-03 10:11:12.120000
|
||||
2001-02-03 10:11:12.120000
|
||||
select cast("2011-02-03 10:11:12.123456" as time);
|
||||
cast("2011-02-03 10:11:12.123456" as time)
|
||||
10:11:12
|
||||
@@ -266,7 +266,7 @@ Warnings:
|
||||
Warning 1264 Out of range value for column 'cast(-1000 as double(5,2))' at row 1
|
||||
select cast(010203101112.121314 as datetime);
|
||||
cast(010203101112.121314 as datetime)
|
||||
0001-02-03 10:11:12
|
||||
2001-02-03 10:11:12
|
||||
select cast(120010203101112.121314 as datetime);
|
||||
cast(120010203101112.121314 as datetime)
|
||||
NULL
|
||||
@@ -327,7 +327,7 @@ cast(cast(120010203101112.121314 as double) as datetime)
|
||||
NULL
|
||||
select cast(cast(1.1 as double) as datetime);
|
||||
cast(cast(1.1 as double) as datetime)
|
||||
0000-00-00 00:00:01
|
||||
NULL
|
||||
select cast(cast(-1.1 as double) as datetime);
|
||||
cast(cast(-1.1 as double) as datetime)
|
||||
NULL
|
||||
|
@@ -273,6 +273,20 @@ connect(localhost,mysqltest_nouser,newpw,test,MASTER_PORT,MASTER_SOCKET);
|
||||
ERROR 28000: Access denied for user 'mysqltest_nouser'@'localhost' (using password: YES)
|
||||
connect(localhost,mysqltest_nouser,,test,MASTER_PORT,MASTER_SOCKET);
|
||||
ERROR 28000: Access denied for user 'mysqltest_nouser'@'localhost' (using password: NO)
|
||||
update mysql.user set password=authentication_string, authentication_string=''
|
||||
where user like 'mysqltest_up_';
|
||||
select user, password, plugin, authentication_string from mysql.user
|
||||
where user like 'mysqltest_up_';
|
||||
user password plugin authentication_string
|
||||
mysqltest_up1 *E8D46CE25265E545D225A8A6F1BAF642FEBEE5CB mysql_native_password
|
||||
mysqltest_up2 09301740536db389 mysql_old_password
|
||||
flush privileges;
|
||||
select user(), current_user();
|
||||
user() current_user()
|
||||
mysqltest_up1@localhost mysqltest_up1@%
|
||||
select user(), current_user();
|
||||
user() current_user()
|
||||
mysqltest_up2@localhost mysqltest_up2@%
|
||||
DROP USER mysqltest_up1@'%';
|
||||
DROP USER mysqltest_up2@'%';
|
||||
#
|
||||
|
@@ -539,6 +539,7 @@ n d1 d2 result
|
||||
2085 2012-01-01 00:00:00 2013-01-01 00:00:00 0
|
||||
2084 2012-02-01 00:00:00 2013-01-01 00:00:00 0
|
||||
drop table t1;
|
||||
set @save_derived_optimizer_switch_bug=@@optimizer_switch;
|
||||
SET optimizer_switch = 'derived_merge=on,derived_with_keys=on,in_to_exists=on';
|
||||
CREATE TABLE t1 (a INT) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES (8);
|
||||
@@ -553,4 +554,17 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
Warnings:
|
||||
Note 1249 Select 4 was reduced during optimization
|
||||
DROP TABLE t1, t2;
|
||||
set optimizer_switch=@save_derived_optimizer_switch_bug;
|
||||
#
|
||||
# MDEV-6163: Error while executing an update query that has the
|
||||
# same table in a sub-query
|
||||
#
|
||||
set @save_derived_optimizer_switch_bug=@@optimizer_switch;
|
||||
SET optimizer_switch = 'derived_merge=on';
|
||||
create table t1 (balance float, accountId varchar(64), primary key (accountId));
|
||||
insert into t1 (accountId,balance) values
|
||||
('dealer-1',199354.0),('dealer-2',0),('dealer-3',0),('dealer-5',0),('FINANCE',-200000),('OPERATOR',0);
|
||||
update t1 set balance=(select sum(balance) from (SELECT balance FROM t1 where accountId like 'dealer%') AS copied) where accountId = 'OPERATOR';
|
||||
set optimizer_switch=@save_derived_optimizer_switch_bug;
|
||||
drop table t1;
|
||||
set optimizer_switch=@save_derived_optimizer_switch;
|
||||
|
@@ -1288,7 +1288,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
3 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
Warnings:
|
||||
Note 1276 Field or reference 't.a' of SELECT #3 was resolved in SELECT #1
|
||||
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where <expr_cache><`test`.`t1`.`a`>(exists(select 28 from `test`.`t3` where ('j' < `test`.`t1`.`a`)))
|
||||
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where <in_optimizer>(1,<expr_cache><`test`.`t1`.`a`>(exists(select 28 from `test`.`t3` where ('j' < `test`.`t1`.`a`))))
|
||||
SELECT * FROM (SELECT * FROM t1) AS t
|
||||
WHERE EXISTS (SELECT t2.a FROM t3 RIGHT JOIN t2 ON (t3.a = t2.a)
|
||||
WHERE t2.b < t.a);
|
||||
|
@@ -1001,29 +1001,29 @@ Warnings:
|
||||
Warning 1292 Truncated incorrect time value: '1223.5aa'
|
||||
select column_get(column_create(1, 18446744073709551615 AS unsigned int), 1 as time);
|
||||
column_get(column_create(1, 18446744073709551615 AS unsigned int), 1 as time)
|
||||
NULL
|
||||
838:59:59
|
||||
Warnings:
|
||||
Warning 1292 Incorrect datetime value: '1.8446744073709552e19'
|
||||
Warning 1292 Truncated incorrect time value: '1.8446744073709552e19'
|
||||
select column_get(column_create(1, 9223372036854775807 AS int), 1 as time);
|
||||
column_get(column_create(1, 9223372036854775807 AS int), 1 as time)
|
||||
NULL
|
||||
838:59:59
|
||||
Warnings:
|
||||
Warning 1292 Incorrect datetime value: '9223372036854775807'
|
||||
Warning 1292 Truncated incorrect time value: '9223372036854775807'
|
||||
select column_get(column_create(1, -9223372036854775808 AS int), 1 as time);
|
||||
column_get(column_create(1, -9223372036854775808 AS int), 1 as time)
|
||||
NULL
|
||||
-838:59:59
|
||||
Warnings:
|
||||
Warning 1292 Incorrect datetime value: '-9223372036854775808'
|
||||
Warning 1292 Truncated incorrect time value: '-9223372036854775808'
|
||||
select column_get(column_create(1, 99999999999999999999999999999 AS decimal(32,10)), 1 as time);
|
||||
column_get(column_create(1, 99999999999999999999999999999 AS decimal(32,10)), 1 as time)
|
||||
NULL
|
||||
838:59:59
|
||||
Warnings:
|
||||
Warning 1292 Incorrect datetime value: '99999999999999999999999999999'
|
||||
Warning 1292 Truncated incorrect time value: '99999999999999999999999999999'
|
||||
select column_get(column_create(1, 99999999999999999999999999999 AS double), 1 as time);
|
||||
column_get(column_create(1, 99999999999999999999999999999 AS double), 1 as time)
|
||||
NULL
|
||||
838:59:59
|
||||
Warnings:
|
||||
Warning 1292 Incorrect datetime value: '1e29'
|
||||
Warning 1292 Truncated incorrect time value: '1e29'
|
||||
select column_get(column_create(1, "2011-02-32 8:46:06.23434" AS CHAR), 1 as time);
|
||||
column_get(column_create(1, "2011-02-32 8:46:06.23434" AS CHAR), 1 as time)
|
||||
NULL
|
||||
@@ -1435,6 +1435,17 @@ Warning 1265 Data truncated for column 'dyncol' at row 1
|
||||
SELECT COLUMN_ADD( dyncol, 'a', '22:22:22', 'c', REPEAT('x',270) AS CHAR ) FROM t1;
|
||||
DROP table t1;
|
||||
#
|
||||
# MDEV-4858 Wrong results for a huge unsigned value inserted into a TIME column
|
||||
#
|
||||
SELECT
|
||||
column_get(column_create(1, -999999999999999 AS int), 1 AS TIME) AS t1,
|
||||
column_get(column_create(1, -9223372036854775808 AS int), 1 AS TIME) AS t2;
|
||||
t1 t2
|
||||
-838:59:59 -838:59:59
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect time value: '-999999999999999'
|
||||
Warning 1292 Truncated incorrect time value: '-9223372036854775808'
|
||||
#
|
||||
# end of 5.3 tests
|
||||
#
|
||||
select column_get(column_create(1, "18446744073709552001" as char), 1 as int);
|
||||
|
@@ -602,8 +602,8 @@ WHERE t3.a=t1.a AND MATCH(b2) AGAINST('scargill' IN BOOLEAN MODE)
|
||||
);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
|
||||
2 DEPENDENT SUBQUERY t2 fulltext b2 b2 0 1 Using where
|
||||
2 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 2 Using where
|
||||
2 MATERIALIZED t2 fulltext b2 b2 0 1 Using where
|
||||
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where
|
||||
# should return 0
|
||||
SELECT count(*) FROM t1 WHERE
|
||||
not exists(
|
||||
|
@@ -584,3 +584,591 @@ ERROR 42000: Identifier name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
|
||||
# --
|
||||
# -- WL#5787: IPv6-capable INET_ATON and INET_NTOA functions.
|
||||
# --
|
||||
|
||||
# -- INET6_ATON: checking NULL, invalid types, out-of range values...
|
||||
|
||||
SELECT INET6_ATON(NULL) IS NULL;
|
||||
INET6_ATON(NULL) IS NULL
|
||||
1
|
||||
SELECT INET6_ATON(123) IS NULL;
|
||||
INET6_ATON(123) IS NULL
|
||||
1
|
||||
SELECT INET6_ATON(123.45) IS NULL;
|
||||
INET6_ATON(123.45) IS NULL
|
||||
1
|
||||
SELECT INET6_ATON(NOW()) IS NULL;
|
||||
INET6_ATON(NOW()) IS NULL
|
||||
1
|
||||
SELECT INET6_ATON('1.2.3') IS NULL;
|
||||
INET6_ATON('1.2.3') IS NULL
|
||||
1
|
||||
SELECT INET6_ATON('1.2.3.') IS NULL;
|
||||
INET6_ATON('1.2.3.') IS NULL
|
||||
1
|
||||
SELECT INET6_ATON('1..3.4') IS NULL;
|
||||
INET6_ATON('1..3.4') IS NULL
|
||||
1
|
||||
SELECT INET6_ATON('-1.2.3.4') IS NULL;
|
||||
INET6_ATON('-1.2.3.4') IS NULL
|
||||
1
|
||||
SELECT INET6_ATON('1.2.3.256') IS NULL;
|
||||
INET6_ATON('1.2.3.256') IS NULL
|
||||
1
|
||||
SELECT INET6_ATON('1.2.3.4.5') IS NULL;
|
||||
INET6_ATON('1.2.3.4.5') IS NULL
|
||||
1
|
||||
SELECT INET6_ATON('0001.2.3.4') IS NULL;
|
||||
INET6_ATON('0001.2.3.4') IS NULL
|
||||
1
|
||||
SELECT INET6_ATON('0x1.2.3.4') IS NULL;
|
||||
INET6_ATON('0x1.2.3.4') IS NULL
|
||||
1
|
||||
SELECT INET6_ATON('a.2.3.4') IS NULL;
|
||||
INET6_ATON('a.2.3.4') IS NULL
|
||||
1
|
||||
SELECT INET6_ATON('1.2.3.4:80') IS NULL;
|
||||
INET6_ATON('1.2.3.4:80') IS NULL
|
||||
1
|
||||
SELECT INET6_ATON('1.2.3.4/32') IS NULL;
|
||||
INET6_ATON('1.2.3.4/32') IS NULL
|
||||
1
|
||||
SELECT INET6_ATON('mysql.com') IS NULL;
|
||||
INET6_ATON('mysql.com') IS NULL
|
||||
1
|
||||
SELECT INET6_ATON(':::') IS NULL;
|
||||
INET6_ATON(':::') IS NULL
|
||||
1
|
||||
SELECT INET6_ATON(':1:2:3') IS NULL;
|
||||
INET6_ATON(':1:2:3') IS NULL
|
||||
1
|
||||
SELECT INET6_ATON('1:2:3:') IS NULL;
|
||||
INET6_ATON('1:2:3:') IS NULL
|
||||
1
|
||||
SELECT INET6_ATON(':1::2:3') IS NULL;
|
||||
INET6_ATON(':1::2:3') IS NULL
|
||||
1
|
||||
SELECT INET6_ATON('1::2:3:') IS NULL;
|
||||
INET6_ATON('1::2:3:') IS NULL
|
||||
1
|
||||
SELECT INET6_ATON('::00001') IS NULL;
|
||||
INET6_ATON('::00001') IS NULL
|
||||
1
|
||||
SELECT INET6_ATON('::00001:2') IS NULL;
|
||||
INET6_ATON('::00001:2') IS NULL
|
||||
1
|
||||
SELECT INET6_ATON('::12345') IS NULL;
|
||||
INET6_ATON('::12345') IS NULL
|
||||
1
|
||||
SELECT INET6_ATON('1020::3040::5060') IS NULL;
|
||||
INET6_ATON('1020::3040::5060') IS NULL
|
||||
1
|
||||
SELECT INET6_ATON('::ABCZ') IS NULL;
|
||||
INET6_ATON('::ABCZ') IS NULL
|
||||
1
|
||||
SELECT INET6_ATON('::0x1.2.3.4') IS NULL;
|
||||
INET6_ATON('::0x1.2.3.4') IS NULL
|
||||
1
|
||||
SELECT INET6_ATON('::1.0x2.3.4') IS NULL;
|
||||
INET6_ATON('::1.0x2.3.4') IS NULL
|
||||
1
|
||||
SELECT INET6_ATON('::a.b.c.d') IS NULL;
|
||||
INET6_ATON('::a.b.c.d') IS NULL
|
||||
1
|
||||
SELECT INET6_ATON('::FFFF:0x1.2.3.4') IS NULL;
|
||||
INET6_ATON('::FFFF:0x1.2.3.4') IS NULL
|
||||
1
|
||||
SELECT INET6_ATON('::FFFF:1.0x2.3.4') IS NULL;
|
||||
INET6_ATON('::FFFF:1.0x2.3.4') IS NULL
|
||||
1
|
||||
SELECT INET6_ATON('::FFFF:a.b.c.d') IS NULL;
|
||||
INET6_ATON('::FFFF:a.b.c.d') IS NULL
|
||||
1
|
||||
SELECT INET6_ATON('::1.2.3.4:ABCD') IS NULL;
|
||||
INET6_ATON('::1.2.3.4:ABCD') IS NULL
|
||||
1
|
||||
# NOTE: such addresses are supported because getaddrinfo() supports them.
|
||||
# This is just to record the current behaviour.
|
||||
SELECT HEX(INET6_ATON('::ABCD:1.2.3.4'));
|
||||
HEX(INET6_ATON('::ABCD:1.2.3.4'))
|
||||
00000000000000000000ABCD01020304
|
||||
|
||||
# -- INET6_ATON: checking binary representation...
|
||||
|
||||
SELECT HEX(INET6_ATON('0.0.0.0'));
|
||||
HEX(INET6_ATON('0.0.0.0'))
|
||||
00000000
|
||||
SELECT HEX(INET6_ATON('00.00.00.00'));
|
||||
HEX(INET6_ATON('00.00.00.00'))
|
||||
00000000
|
||||
SELECT HEX(INET6_ATON('000.000.000.000'));
|
||||
HEX(INET6_ATON('000.000.000.000'))
|
||||
00000000
|
||||
SELECT HEX(INET6_ATON('1.2.3.4'));
|
||||
HEX(INET6_ATON('1.2.3.4'))
|
||||
01020304
|
||||
SELECT HEX(INET6_ATON('01.02.03.04'));
|
||||
HEX(INET6_ATON('01.02.03.04'))
|
||||
01020304
|
||||
SELECT HEX(INET6_ATON('001.002.003.004'));
|
||||
HEX(INET6_ATON('001.002.003.004'))
|
||||
01020304
|
||||
SELECT HEX(INET6_ATON('255.255.255.255'));
|
||||
HEX(INET6_ATON('255.255.255.255'))
|
||||
FFFFFFFF
|
||||
SELECT HEX(INET6_ATON('::'));
|
||||
HEX(INET6_ATON('::'))
|
||||
00000000000000000000000000000000
|
||||
SELECT HEX(INET6_ATON('0::0'));
|
||||
HEX(INET6_ATON('0::0'))
|
||||
00000000000000000000000000000000
|
||||
SELECT HEX(INET6_ATON('1::2'));
|
||||
HEX(INET6_ATON('1::2'))
|
||||
00010000000000000000000000000002
|
||||
SELECT HEX(INET6_ATON('0::'));
|
||||
HEX(INET6_ATON('0::'))
|
||||
00000000000000000000000000000000
|
||||
SELECT HEX(INET6_ATON('1::'));
|
||||
HEX(INET6_ATON('1::'))
|
||||
00010000000000000000000000000000
|
||||
SELECT HEX(INET6_ATON('::0'));
|
||||
HEX(INET6_ATON('::0'))
|
||||
00000000000000000000000000000000
|
||||
SELECT HEX(INET6_ATON('::1'));
|
||||
HEX(INET6_ATON('::1'))
|
||||
00000000000000000000000000000001
|
||||
SELECT HEX(INET6_ATON('1:2:3:4:5:6:7:8'));
|
||||
HEX(INET6_ATON('1:2:3:4:5:6:7:8'))
|
||||
00010002000300040005000600070008
|
||||
SELECT HEX(INET6_ATON('::2:3:4:5:6:7:8'));
|
||||
HEX(INET6_ATON('::2:3:4:5:6:7:8'))
|
||||
00000002000300040005000600070008
|
||||
SELECT HEX(INET6_ATON('1::3:4:5:6:7:8'));
|
||||
HEX(INET6_ATON('1::3:4:5:6:7:8'))
|
||||
00010000000300040005000600070008
|
||||
SELECT HEX(INET6_ATON('1:2::4:5:6:7:8'));
|
||||
HEX(INET6_ATON('1:2::4:5:6:7:8'))
|
||||
00010002000000040005000600070008
|
||||
SELECT HEX(INET6_ATON('1:2:3::5:6:7:8'));
|
||||
HEX(INET6_ATON('1:2:3::5:6:7:8'))
|
||||
00010002000300000005000600070008
|
||||
SELECT HEX(INET6_ATON('1:2:3:4::6:7:8'));
|
||||
HEX(INET6_ATON('1:2:3:4::6:7:8'))
|
||||
00010002000300040000000600070008
|
||||
SELECT HEX(INET6_ATON('1:2:3:4:5::7:8'));
|
||||
HEX(INET6_ATON('1:2:3:4:5::7:8'))
|
||||
00010002000300040005000000070008
|
||||
SELECT HEX(INET6_ATON('1:2:3:4:5:6::8'));
|
||||
HEX(INET6_ATON('1:2:3:4:5:6::8'))
|
||||
00010002000300040005000600000008
|
||||
SELECT HEX(INET6_ATON('1:2:3:4:5:6:7::'));
|
||||
HEX(INET6_ATON('1:2:3:4:5:6:7::'))
|
||||
00010002000300040005000600070000
|
||||
SELECT HEX(INET6_ATON('0000:0000::0000:0001'));
|
||||
HEX(INET6_ATON('0000:0000::0000:0001'))
|
||||
00000000000000000000000000000001
|
||||
SELECT HEX(INET6_ATON('1234:5678:9abc:def0:4321:8765:cba9:0fed'));
|
||||
HEX(INET6_ATON('1234:5678:9abc:def0:4321:8765:cba9:0fed'))
|
||||
123456789ABCDEF043218765CBA90FED
|
||||
SELECT HEX(INET6_ATON('0000:0000:0000:0000:0000:0000:0000:0001'));
|
||||
HEX(INET6_ATON('0000:0000:0000:0000:0000:0000:0000:0001'))
|
||||
00000000000000000000000000000001
|
||||
SELECT HEX(INET6_ATON('::C0A8:0102'));
|
||||
HEX(INET6_ATON('::C0A8:0102'))
|
||||
000000000000000000000000C0A80102
|
||||
SELECT HEX(INET6_ATON('::c0a8:0102'));
|
||||
HEX(INET6_ATON('::c0a8:0102'))
|
||||
000000000000000000000000C0A80102
|
||||
SELECT HEX(INET6_ATON('::192.168.1.2'));
|
||||
HEX(INET6_ATON('::192.168.1.2'))
|
||||
000000000000000000000000C0A80102
|
||||
SELECT HEX(INET6_ATON('::FfFf:C0a8:0102'));
|
||||
HEX(INET6_ATON('::FfFf:C0a8:0102'))
|
||||
00000000000000000000FFFFC0A80102
|
||||
SELECT HEX(INET6_ATON('::ffff:c0a8:0102'));
|
||||
HEX(INET6_ATON('::ffff:c0a8:0102'))
|
||||
00000000000000000000FFFFC0A80102
|
||||
SELECT HEX(INET6_ATON('::ffff:192.168.1.2'));
|
||||
HEX(INET6_ATON('::ffff:192.168.1.2'))
|
||||
00000000000000000000FFFFC0A80102
|
||||
SELECT HEX(INET6_ATON('::01.2.3.4'));
|
||||
HEX(INET6_ATON('::01.2.3.4'))
|
||||
00000000000000000000000001020304
|
||||
SELECT HEX(INET6_ATON('::1.02.3.4'));
|
||||
HEX(INET6_ATON('::1.02.3.4'))
|
||||
00000000000000000000000001020304
|
||||
SELECT HEX(INET6_ATON('::1.2.03.4'));
|
||||
HEX(INET6_ATON('::1.2.03.4'))
|
||||
00000000000000000000000001020304
|
||||
SELECT HEX(INET6_ATON('::1.2.3.04'));
|
||||
HEX(INET6_ATON('::1.2.3.04'))
|
||||
00000000000000000000000001020304
|
||||
SELECT HEX(INET6_ATON('::1.2.3.00'));
|
||||
HEX(INET6_ATON('::1.2.3.00'))
|
||||
00000000000000000000000001020300
|
||||
SELECT HEX(INET6_ATON('::FFFF:01.2.3.4'));
|
||||
HEX(INET6_ATON('::FFFF:01.2.3.4'))
|
||||
00000000000000000000FFFF01020304
|
||||
SELECT HEX(INET6_ATON('::FFFF:1.02.3.4'));
|
||||
HEX(INET6_ATON('::FFFF:1.02.3.4'))
|
||||
00000000000000000000FFFF01020304
|
||||
SELECT HEX(INET6_ATON('::FFFF:1.2.03.4'));
|
||||
HEX(INET6_ATON('::FFFF:1.2.03.4'))
|
||||
00000000000000000000FFFF01020304
|
||||
SELECT HEX(INET6_ATON('::FFFF:1.2.3.04'));
|
||||
HEX(INET6_ATON('::FFFF:1.2.3.04'))
|
||||
00000000000000000000FFFF01020304
|
||||
SELECT HEX(INET6_ATON('::FFFF:1.2.3.00'));
|
||||
HEX(INET6_ATON('::FFFF:1.2.3.00'))
|
||||
00000000000000000000FFFF01020300
|
||||
|
||||
# -- INET6_ATON: checking the length is either 4 or 16...
|
||||
|
||||
SELECT LENGTH(INET6_ATON('0.0.0.0'));
|
||||
LENGTH(INET6_ATON('0.0.0.0'))
|
||||
4
|
||||
SELECT LENGTH(INET6_ATON('255.255.255.255'));
|
||||
LENGTH(INET6_ATON('255.255.255.255'))
|
||||
4
|
||||
SELECT LENGTH(INET6_ATON('::'));
|
||||
LENGTH(INET6_ATON('::'))
|
||||
16
|
||||
SELECT LENGTH(INET6_ATON('1020:3040:5060:7080:90A0:B0C0:D0E0:F010'));
|
||||
LENGTH(INET6_ATON('1020:3040:5060:7080:90A0:B0C0:D0E0:F010'))
|
||||
16
|
||||
|
||||
# -- INET6_NTOA: checking NULL, invalid types, out-of range values...
|
||||
|
||||
SELECT INET6_NTOA(NULL);
|
||||
INET6_NTOA(NULL)
|
||||
NULL
|
||||
SELECT INET6_NTOA(123);
|
||||
INET6_NTOA(123)
|
||||
NULL
|
||||
SELECT INET6_NTOA(123.456);
|
||||
INET6_NTOA(123.456)
|
||||
NULL
|
||||
SELECT INET6_NTOA(NOW());
|
||||
INET6_NTOA(NOW())
|
||||
NULL
|
||||
SELECT INET6_NTOA(UNHEX('C0A801'));
|
||||
INET6_NTOA(UNHEX('C0A801'))
|
||||
NULL
|
||||
SELECT INET6_NTOA(UNHEX('C0A80102'));
|
||||
INET6_NTOA(UNHEX('C0A80102'))
|
||||
192.168.1.2
|
||||
SELECT INET6_NTOA(UNHEX('C0A8010203'));
|
||||
INET6_NTOA(UNHEX('C0A8010203'))
|
||||
NULL
|
||||
SELECT INET6_NTOA(UNHEX('0102030405060708090A0B0C0D0E0F'));
|
||||
INET6_NTOA(UNHEX('0102030405060708090A0B0C0D0E0F'))
|
||||
NULL
|
||||
SELECT INET6_NTOA(UNHEX('0102030405060708090A0B0C0D0E0F10'));
|
||||
INET6_NTOA(UNHEX('0102030405060708090A0B0C0D0E0F10'))
|
||||
102:304:506:708:90a:b0c:d0e:f10
|
||||
SELECT INET6_NTOA(UNHEX('0102030405060708090A0B0C0D0E0F1011'));
|
||||
INET6_NTOA(UNHEX('0102030405060708090A0B0C0D0E0F1011'))
|
||||
NULL
|
||||
SELECT INET6_NTOA('1234'), INET6_NTOA(BINARY('1234'));
|
||||
INET6_NTOA('1234') INET6_NTOA(BINARY('1234'))
|
||||
NULL 49.50.51.52
|
||||
SELECT INET6_NTOA('0123456789abcdef'), INET6_NTOA(BINARY('0123456789abcdef'));
|
||||
INET6_NTOA('0123456789abcdef') INET6_NTOA(BINARY('0123456789abcdef'))
|
||||
NULL 3031:3233:3435:3637:3839:6162:6364:6566
|
||||
|
||||
# -- Checking double-conversion...
|
||||
|
||||
SELECT INET6_NTOA(INET6_ATON('::'));
|
||||
INET6_NTOA(INET6_ATON('::'))
|
||||
::
|
||||
SELECT INET6_NTOA(INET6_ATON('0::0'));
|
||||
INET6_NTOA(INET6_ATON('0::0'))
|
||||
::
|
||||
SELECT INET6_NTOA(INET6_ATON('1::2'));
|
||||
INET6_NTOA(INET6_ATON('1::2'))
|
||||
1::2
|
||||
SELECT INET6_NTOA(INET6_ATON('0::'));
|
||||
INET6_NTOA(INET6_ATON('0::'))
|
||||
::
|
||||
SELECT INET6_NTOA(INET6_ATON('1::'));
|
||||
INET6_NTOA(INET6_ATON('1::'))
|
||||
1::
|
||||
SELECT INET6_NTOA(INET6_ATON('::0'));
|
||||
INET6_NTOA(INET6_ATON('::0'))
|
||||
::
|
||||
SELECT INET6_NTOA(INET6_ATON('::1'));
|
||||
INET6_NTOA(INET6_ATON('::1'))
|
||||
::1
|
||||
SELECT INET6_NTOA(INET6_ATON('1:2:3:4:5:6:7:8'));
|
||||
INET6_NTOA(INET6_ATON('1:2:3:4:5:6:7:8'))
|
||||
1:2:3:4:5:6:7:8
|
||||
SELECT INET6_NTOA(INET6_ATON('::2:3:4:5:6:7:8'));
|
||||
INET6_NTOA(INET6_ATON('::2:3:4:5:6:7:8'))
|
||||
::2:3:4:5:6:7:8
|
||||
SELECT INET6_NTOA(INET6_ATON('1::3:4:5:6:7:8'));
|
||||
INET6_NTOA(INET6_ATON('1::3:4:5:6:7:8'))
|
||||
1::3:4:5:6:7:8
|
||||
SELECT INET6_NTOA(INET6_ATON('1:2::4:5:6:7:8'));
|
||||
INET6_NTOA(INET6_ATON('1:2::4:5:6:7:8'))
|
||||
1:2::4:5:6:7:8
|
||||
SELECT INET6_NTOA(INET6_ATON('1:2:3::5:6:7:8'));
|
||||
INET6_NTOA(INET6_ATON('1:2:3::5:6:7:8'))
|
||||
1:2:3::5:6:7:8
|
||||
SELECT INET6_NTOA(INET6_ATON('1:2:3:4::6:7:8'));
|
||||
INET6_NTOA(INET6_ATON('1:2:3:4::6:7:8'))
|
||||
1:2:3:4::6:7:8
|
||||
SELECT INET6_NTOA(INET6_ATON('1:2:3:4:5::7:8'));
|
||||
INET6_NTOA(INET6_ATON('1:2:3:4:5::7:8'))
|
||||
1:2:3:4:5::7:8
|
||||
SELECT INET6_NTOA(INET6_ATON('1:2:3:4:5:6::8'));
|
||||
INET6_NTOA(INET6_ATON('1:2:3:4:5:6::8'))
|
||||
1:2:3:4:5:6::8
|
||||
SELECT INET6_NTOA(INET6_ATON('1:2:3:4:5:6:7::'));
|
||||
INET6_NTOA(INET6_ATON('1:2:3:4:5:6:7::'))
|
||||
1:2:3:4:5:6:7::
|
||||
SELECT INET6_NTOA(INET6_ATON('0000:0000::0000:0001'));
|
||||
INET6_NTOA(INET6_ATON('0000:0000::0000:0001'))
|
||||
::1
|
||||
SELECT INET6_NTOA(INET6_ATON('1234:5678:9abc:def0:4321:8765:cba9:0fed'));
|
||||
INET6_NTOA(INET6_ATON('1234:5678:9abc:def0:4321:8765:cba9:0fed'))
|
||||
1234:5678:9abc:def0:4321:8765:cba9:fed
|
||||
SELECT INET6_NTOA(INET6_ATON('0000:0000:0000:0000:0000:0000:0000:0001'));
|
||||
INET6_NTOA(INET6_ATON('0000:0000:0000:0000:0000:0000:0000:0001'))
|
||||
::1
|
||||
SELECT INET6_NTOA(INET6_ATON('::C0A8:0102'));
|
||||
INET6_NTOA(INET6_ATON('::C0A8:0102'))
|
||||
::192.168.1.2
|
||||
SELECT INET6_NTOA(INET6_ATON('::c0a8:0102'));
|
||||
INET6_NTOA(INET6_ATON('::c0a8:0102'))
|
||||
::192.168.1.2
|
||||
SELECT INET6_NTOA(INET6_ATON('::192.168.1.2'));
|
||||
INET6_NTOA(INET6_ATON('::192.168.1.2'))
|
||||
::192.168.1.2
|
||||
SELECT INET6_NTOA(INET6_ATON('::FfFf:C0a8:0102'));
|
||||
INET6_NTOA(INET6_ATON('::FfFf:C0a8:0102'))
|
||||
::ffff:192.168.1.2
|
||||
SELECT INET6_NTOA(INET6_ATON('::ffff:c0a8:0102'));
|
||||
INET6_NTOA(INET6_ATON('::ffff:c0a8:0102'))
|
||||
::ffff:192.168.1.2
|
||||
SELECT INET6_NTOA(INET6_ATON('::ffff:192.168.1.2'));
|
||||
INET6_NTOA(INET6_ATON('::ffff:192.168.1.2'))
|
||||
::ffff:192.168.1.2
|
||||
SELECT INET6_NTOA(INET6_ATON('::01.2.3.4'));
|
||||
INET6_NTOA(INET6_ATON('::01.2.3.4'))
|
||||
::1.2.3.4
|
||||
SELECT INET6_NTOA(INET6_ATON('::1.02.3.4'));
|
||||
INET6_NTOA(INET6_ATON('::1.02.3.4'))
|
||||
::1.2.3.4
|
||||
SELECT INET6_NTOA(INET6_ATON('::1.2.03.4'));
|
||||
INET6_NTOA(INET6_ATON('::1.2.03.4'))
|
||||
::1.2.3.4
|
||||
SELECT INET6_NTOA(INET6_ATON('::1.2.3.04'));
|
||||
INET6_NTOA(INET6_ATON('::1.2.3.04'))
|
||||
::1.2.3.4
|
||||
SELECT INET6_NTOA(INET6_ATON('::1.2.3.00'));
|
||||
INET6_NTOA(INET6_ATON('::1.2.3.00'))
|
||||
::1.2.3.0
|
||||
SELECT INET6_NTOA(INET6_ATON('::FFFF:01.2.3.4'));
|
||||
INET6_NTOA(INET6_ATON('::FFFF:01.2.3.4'))
|
||||
::ffff:1.2.3.4
|
||||
SELECT INET6_NTOA(INET6_ATON('::FFFF:1.02.3.4'));
|
||||
INET6_NTOA(INET6_ATON('::FFFF:1.02.3.4'))
|
||||
::ffff:1.2.3.4
|
||||
SELECT INET6_NTOA(INET6_ATON('::FFFF:1.2.03.4'));
|
||||
INET6_NTOA(INET6_ATON('::FFFF:1.2.03.4'))
|
||||
::ffff:1.2.3.4
|
||||
SELECT INET6_NTOA(INET6_ATON('::FFFF:1.2.3.04'));
|
||||
INET6_NTOA(INET6_ATON('::FFFF:1.2.3.04'))
|
||||
::ffff:1.2.3.4
|
||||
SELECT INET6_NTOA(INET6_ATON('::FFFF:1.2.3.00'));
|
||||
INET6_NTOA(INET6_ATON('::FFFF:1.2.3.00'))
|
||||
::ffff:1.2.3.0
|
||||
|
||||
# -- Comparing INET_ATON() and INET6_ATON()...
|
||||
|
||||
SELECT HEX(INET_ATON('192.168.1.2'));
|
||||
HEX(INET_ATON('192.168.1.2'))
|
||||
C0A80102
|
||||
SELECT HEX(INET6_ATON('192.168.1.2'));
|
||||
HEX(INET6_ATON('192.168.1.2'))
|
||||
C0A80102
|
||||
SELECT HEX(INET_ATON('255.255.255.255'));
|
||||
HEX(INET_ATON('255.255.255.255'))
|
||||
FFFFFFFF
|
||||
SELECT HEX(INET6_ATON('255.255.255.255'));
|
||||
HEX(INET6_ATON('255.255.255.255'))
|
||||
FFFFFFFF
|
||||
SELECT HEX(INET_ATON('192.168.08.2'));
|
||||
HEX(INET_ATON('192.168.08.2'))
|
||||
C0A80802
|
||||
SELECT HEX(INET6_ATON('192.168.08.2'));
|
||||
HEX(INET6_ATON('192.168.08.2'))
|
||||
C0A80802
|
||||
SELECT HEX(INET_ATON('192.168.0x8.2'));
|
||||
HEX(INET_ATON('192.168.0x8.2'))
|
||||
NULL
|
||||
SELECT HEX(INET6_ATON('192.168.0x8.2'));
|
||||
HEX(INET6_ATON('192.168.0x8.2'))
|
||||
NULL
|
||||
SELECT HEX(INET_ATON('1.2.255'));
|
||||
HEX(INET_ATON('1.2.255'))
|
||||
10200FF
|
||||
SELECT HEX(INET6_ATON('1.2.255'));
|
||||
HEX(INET6_ATON('1.2.255'))
|
||||
NULL
|
||||
SELECT HEX(INET_ATON('1.2.256'));
|
||||
HEX(INET_ATON('1.2.256'))
|
||||
NULL
|
||||
SELECT HEX(INET6_ATON('1.2.256'));
|
||||
HEX(INET6_ATON('1.2.256'))
|
||||
NULL
|
||||
SELECT HEX(INET_ATON('1.0002.3.4'));
|
||||
HEX(INET_ATON('1.0002.3.4'))
|
||||
1020304
|
||||
SELECT HEX(INET6_ATON('1.0002.3.4'));
|
||||
HEX(INET6_ATON('1.0002.3.4'))
|
||||
NULL
|
||||
SELECT HEX(INET_ATON('1.2.3.4.5'));
|
||||
HEX(INET_ATON('1.2.3.4.5'))
|
||||
102030405
|
||||
SELECT HEX(INET6_ATON('1.2.3.4.5'));
|
||||
HEX(INET6_ATON('1.2.3.4.5'))
|
||||
NULL
|
||||
|
||||
# -- Checking mix of INET- and INET6- functions...
|
||||
|
||||
SELECT HEX(INET6_ATON(INET_NTOA(INET_ATON('1.2.3.4')))) AS x;
|
||||
x
|
||||
01020304
|
||||
|
||||
# -- Checking IS_IPV4() / IS_IPV6()...
|
||||
|
||||
SELECT IS_IPV4(NULL);
|
||||
IS_IPV4(NULL)
|
||||
0
|
||||
SELECT IS_IPV4(1);
|
||||
IS_IPV4(1)
|
||||
0
|
||||
SELECT IS_IPV4(1.0);
|
||||
IS_IPV4(1.0)
|
||||
0
|
||||
SELECT IS_IPV4('1.2.3.4');
|
||||
IS_IPV4('1.2.3.4')
|
||||
1
|
||||
SELECT IS_IPV4('001.02.000.255');
|
||||
IS_IPV4('001.02.000.255')
|
||||
1
|
||||
SELECT IS_IPV4('::1.2.0.255');
|
||||
IS_IPV4('::1.2.0.255')
|
||||
0
|
||||
SELECT IS_IPV4('::1');
|
||||
IS_IPV4('::1')
|
||||
0
|
||||
SELECT IS_IPV4(BINARY('1.2.3.4'));
|
||||
IS_IPV4(BINARY('1.2.3.4'))
|
||||
1
|
||||
SELECT IS_IPV6(NULL);
|
||||
IS_IPV6(NULL)
|
||||
0
|
||||
SELECT IS_IPV6(1);
|
||||
IS_IPV6(1)
|
||||
0
|
||||
SELECT IS_IPV6(1.0);
|
||||
IS_IPV6(1.0)
|
||||
0
|
||||
SELECT IS_IPV6('1.2.3.4');
|
||||
IS_IPV6('1.2.3.4')
|
||||
0
|
||||
SELECT IS_IPV6('001.02.000.255');
|
||||
IS_IPV6('001.02.000.255')
|
||||
0
|
||||
SELECT IS_IPV6('::001.02.000.255');
|
||||
IS_IPV6('::001.02.000.255')
|
||||
1
|
||||
SELECT IS_IPV6('::1.2.0.255');
|
||||
IS_IPV6('::1.2.0.255')
|
||||
1
|
||||
SELECT IS_IPV6('::1');
|
||||
IS_IPV6('::1')
|
||||
1
|
||||
SELECT IS_IPV6('0000:0000:0000:0000:0000:0000:0000:0001');
|
||||
IS_IPV6('0000:0000:0000:0000:0000:0000:0000:0001')
|
||||
1
|
||||
SELECT IS_IPV6(BINARY('0000:0000:0000:0000:0000:0000:0000:0001'));
|
||||
IS_IPV6(BINARY('0000:0000:0000:0000:0000:0000:0000:0001'))
|
||||
1
|
||||
|
||||
# -- Checking IS_IPV4_MAPPED() and IS_IPV4_COMPAT()...
|
||||
|
||||
SELECT IS_IPV4_MAPPED(INET6_ATON('1.2.3.4')),
|
||||
IS_IPV4_COMPAT(INET6_ATON('1.2.3.4'));
|
||||
IS_IPV4_MAPPED(INET6_ATON('1.2.3.4')) IS_IPV4_COMPAT(INET6_ATON('1.2.3.4'))
|
||||
0 0
|
||||
SELECT IS_IPV4_MAPPED(INET6_ATON('::1.2.3.4')),
|
||||
IS_IPV4_COMPAT(INET6_ATON('::1.2.3.4'));
|
||||
IS_IPV4_MAPPED(INET6_ATON('::1.2.3.4')) IS_IPV4_COMPAT(INET6_ATON('::1.2.3.4'))
|
||||
0 1
|
||||
SELECT IS_IPV4_MAPPED(INET6_ATON('::FFFF:1.2.3.4')),
|
||||
IS_IPV4_COMPAT(INET6_ATON('::FFFF:1.2.3.4'));
|
||||
IS_IPV4_MAPPED(INET6_ATON('::FFFF:1.2.3.4')) IS_IPV4_COMPAT(INET6_ATON('::FFFF:1.2.3.4'))
|
||||
1 0
|
||||
SELECT IS_IPV4_MAPPED(INET6_ATON('::ABCD:1.2.3.4')),
|
||||
IS_IPV4_COMPAT(INET6_ATON('::ABCD:1.2.3.4'));
|
||||
IS_IPV4_MAPPED(INET6_ATON('::ABCD:1.2.3.4')) IS_IPV4_COMPAT(INET6_ATON('::ABCD:1.2.3.4'))
|
||||
0 0
|
||||
SELECT IS_IPV4_MAPPED(INET6_ATON('::1')),
|
||||
IS_IPV4_COMPAT(INET6_ATON('::1'));
|
||||
IS_IPV4_MAPPED(INET6_ATON('::1')) IS_IPV4_COMPAT(INET6_ATON('::1'))
|
||||
0 0
|
||||
SELECT IS_IPV4_MAPPED(INET6_ATON('::')),
|
||||
IS_IPV4_COMPAT(INET6_ATON('::'));
|
||||
IS_IPV4_MAPPED(INET6_ATON('::')) IS_IPV4_COMPAT(INET6_ATON('::'))
|
||||
0 0
|
||||
|
||||
# -- Checking IS_IPV4_COMPAT()...
|
||||
|
||||
|
||||
# -- Working with a table...
|
||||
|
||||
DROP TABLE IF EXISTS t1;
|
||||
DROP TABLE IF EXISTS t2;
|
||||
CREATE TABLE t1(ip INT UNSIGNED);
|
||||
CREATE TABLE t2(ip VARBINARY(16));
|
||||
|
||||
INSERT INTO t1 VALUES
|
||||
(INET_ATON('1.2.3.4')), (INET_ATON('255.255.255.255'));
|
||||
SELECT INET_NTOA(ip) FROM t1;
|
||||
INET_NTOA(ip)
|
||||
1.2.3.4
|
||||
255.255.255.255
|
||||
|
||||
INSERT INTO t2 SELECT INET6_ATON(INET_NTOA(ip)) FROM t1;
|
||||
SELECT INET6_NTOA(ip), HEX(ip), LENGTH(ip) FROM t2;
|
||||
INET6_NTOA(ip) HEX(ip) LENGTH(ip)
|
||||
1.2.3.4 01020304 4
|
||||
255.255.255.255 FFFFFFFF 4
|
||||
DELETE FROM t2;
|
||||
|
||||
INSERT INTO t2 VALUES
|
||||
(INET6_ATON('1.2.3.4')), (INET6_ATON('255.255.255.255')),
|
||||
(INET6_ATON('::1.2.3.4')), (INET6_ATON('::ffff:255.255.255.255')),
|
||||
(INET6_ATON('::')), (INET6_ATON('::1')),
|
||||
(INET6_ATON('1020:3040:5060:7080:90A0:B0C0:D0E0:F010'));
|
||||
SELECT INET6_NTOA(ip), HEX(ip), LENGTH(ip) FROM t2;
|
||||
INET6_NTOA(ip) HEX(ip) LENGTH(ip)
|
||||
1.2.3.4 01020304 4
|
||||
255.255.255.255 FFFFFFFF 4
|
||||
::1.2.3.4 00000000000000000000000001020304 16
|
||||
::ffff:255.255.255.255 00000000000000000000FFFFFFFFFFFF 16
|
||||
:: 00000000000000000000000000000000 16
|
||||
::1 00000000000000000000000000000001 16
|
||||
1020:3040:5060:7080:90a0:b0c0:d0e0:f010 102030405060708090A0B0C0D0E0F010 16
|
||||
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
||||
|
||||
# -- Done.
|
||||
|
||||
|
@@ -2658,6 +2658,17 @@ group_concat( i ) field
|
||||
NULL NULL
|
||||
8
|
||||
drop table t1;
|
||||
#
|
||||
# Bug#11766684 59851: UNINITIALISED VALUE IN ITEM_FUNC_LIKE::SELECT_OPTIMIZE WITH SUBQUERY AND
|
||||
#
|
||||
CREATE TABLE t2(a INT, KEY(a));
|
||||
INSERT INTO t2 VALUES (1),(2);
|
||||
CREATE TABLE t1(b INT, PRIMARY KEY(b));
|
||||
INSERT INTO t1 VALUES (0),(254);
|
||||
SELECT 1 FROM t2 WHERE a LIKE
|
||||
(SELECT EXPORT_SET(1, b, b, b, b) FROM t1 LIMIT 1);
|
||||
1
|
||||
DROP TABLE t1, t2;
|
||||
End of 5.1 tests
|
||||
#
|
||||
# Start of 5.3 tests
|
||||
|
@@ -1091,9 +1091,9 @@ NULL
|
||||
select isnull(week(now() + 0)), isnull(week(now() + 0.2)),
|
||||
week(20061108), week(20061108.01), week(20061108085411.000002);
|
||||
isnull(week(now() + 0)) isnull(week(now() + 0.2)) week(20061108) week(20061108.01) week(20061108085411.000002)
|
||||
0 0 45 NULL 45
|
||||
0 0 45 45 45
|
||||
Warnings:
|
||||
Warning 1292 Incorrect datetime value: '20061108.01'
|
||||
Warning 1292 Truncated incorrect datetime value: '20061108.01'
|
||||
End of 4.1 tests
|
||||
select time_format('100:00:00', '%H %k %h %I %l');
|
||||
time_format('100:00:00', '%H %k %h %I %l')
|
||||
@@ -1878,9 +1878,15 @@ least(1, f1)
|
||||
Warnings:
|
||||
Warning 1292 Incorrect datetime value: '1'
|
||||
drop table t1;
|
||||
SET timestamp=UNIX_TIMESTAMP('2014-04-14 10:10:10');
|
||||
select now() > coalesce(time('21:43:24'), date('2010-05-03'));
|
||||
now() > coalesce(time('21:43:24'), date('2010-05-03'))
|
||||
0
|
||||
SET timestamp=UNIX_TIMESTAMP('2014-04-14 22:22:22');
|
||||
select now() > coalesce(time('21:43:24'), date('2010-05-03'));
|
||||
now() > coalesce(time('21:43:24'), date('2010-05-03'))
|
||||
1
|
||||
SET timestamp=DEFAULT;
|
||||
create table t1 (f1 timestamp);
|
||||
select * from t1 where f1 > f1 and f1 <=> timestampadd(hour, 9 , '2010-01-01 16:55:35');
|
||||
f1
|
||||
@@ -1918,15 +1924,20 @@ select cast(f1 AS time) from t1;
|
||||
cast(f1 AS time)
|
||||
00:00:00
|
||||
drop table t1;
|
||||
SET timestamp=UNIX_TIMESTAMP('2014-06-01 10:20:30');
|
||||
select greatest(cast("0-0-0" as date), cast("10:20:05" as time));
|
||||
greatest(cast("0-0-0" as date), cast("10:20:05" as time))
|
||||
0000-00-00
|
||||
2014-06-01
|
||||
select greatest(cast("0-0-0" as date), cast("10:20:05" as time)) = '0000-00-00';
|
||||
greatest(cast("0-0-0" as date), cast("10:20:05" as time)) = '0000-00-00'
|
||||
0
|
||||
select greatest(cast("0-0-0" as date), cast("10:20:05" as time)) = '2014-06-01';
|
||||
greatest(cast("0-0-0" as date), cast("10:20:05" as time)) = '2014-06-01'
|
||||
1
|
||||
select cast(greatest(cast("0-0-0" as date), cast("10:20:05" as time)) as datetime(6));
|
||||
cast(greatest(cast("0-0-0" as date), cast("10:20:05" as time)) as datetime(6))
|
||||
0000-00-00 00:00:00.000000
|
||||
2014-06-01 00:00:00.000000
|
||||
SET timestamp=DEFAULT;
|
||||
select microsecond('12:00:00.123456'), microsecond('2009-12-31 23:59:59.000010');
|
||||
microsecond('12:00:00.123456') microsecond('2009-12-31 23:59:59.000010')
|
||||
123456 10
|
||||
@@ -2134,15 +2145,16 @@ DROP TABLE t1;
|
||||
#
|
||||
# MDEV-4870 Wrong values of CASE, COALESCE, IFNULL on a combination of different temporal types
|
||||
#
|
||||
SET timestamp=UNIX_TIMESTAMP('2001-01-01 10:20:30');
|
||||
CREATE TABLE t1 (dt2 DATETIME(2), t3 TIME(3), d DATE);
|
||||
INSERT INTO t1 VALUES ('2001-01-01 00:00:00.12', '00:00:00.567', '2002-01-01');
|
||||
SELECT CASE WHEN 0 THEN dt2 ELSE t3 END FROM t1;
|
||||
CASE WHEN 0 THEN dt2 ELSE t3 END
|
||||
0000-00-00 00:00:00.567
|
||||
2001-01-01 00:00:00.567
|
||||
CREATE TABLE t2 AS SELECT CASE WHEN 0 THEN dt2 ELSE t3 END FROM t1;
|
||||
SELECT * FROM t2;
|
||||
CASE WHEN 0 THEN dt2 ELSE t3 END
|
||||
0000-00-00 00:00:00.567
|
||||
2001-01-01 00:00:00.567
|
||||
SHOW COLUMNS FROM t2;
|
||||
Field Type Null Key Default Extra
|
||||
CASE WHEN 0 THEN dt2 ELSE t3 END datetime(3) YES NULL
|
||||
@@ -2161,7 +2173,7 @@ CONCAT(CASE WHEN 1 THEN d ELSE t3 END)
|
||||
2002-01-01 00:00:00.000
|
||||
SELECT CASE WHEN 1 THEN t3 ELSE d END FROM t1;
|
||||
CASE WHEN 1 THEN t3 ELSE d END
|
||||
0000-00-00 00:00:00.567
|
||||
2001-01-01 00:00:00.567
|
||||
SELECT COALESCE(d, t3) FROM t1;
|
||||
COALESCE(d, t3)
|
||||
2002-01-01 00:00:00.000
|
||||
@@ -2181,6 +2193,7 @@ SELECT IFNULL(d, t3), CONCAT(IFNULL(d, t3)) FROM t1;
|
||||
IFNULL(d, t3) CONCAT(IFNULL(d, t3))
|
||||
2002-01-01 00:00:00.000 2002-01-01 00:00:00.000
|
||||
DROP TABLE t1;
|
||||
SET timestamp=DEFAULT;
|
||||
#
|
||||
# MDEV-4724 Some temporal functions do not preserve microseconds
|
||||
#
|
||||
@@ -2483,6 +2496,14 @@ SELECT 1 FROM t1 GROUP BY MONTHNAME(0) WITH ROLLUP;
|
||||
1
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-6099 Bad results for DATE_ADD(.., INTERVAL 2000000000000000000.0 SECOND)
|
||||
#
|
||||
SELECT DATE_ADD('2001-01-01 10:20:30',INTERVAL 250000000000.0 SECOND) AS c1, DATE_ADD('2001-01-01 10:20:30',INTERVAL 2000000000000000000.0 SECOND) AS c2;
|
||||
c1 c2
|
||||
9923-03-10 22:47:10.0 NULL
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect DECIMAL value: '2000000000000000000.0'
|
||||
#
|
||||
# MDEV-4838 Wrong metadata for DATE_ADD('string', INVERVAL)
|
||||
#
|
||||
SELECT DATE_ADD('2011-01-02 12:13:14', INTERVAL 1 MINUTE);
|
||||
@@ -2562,3 +2583,20 @@ Warnings:
|
||||
Warning 1441 Datetime function: datetime field overflow
|
||||
Warning 1441 Datetime function: datetime field overflow
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-6101 Hybrid functions do not add CURRENT_DATE when converting TIME to DATETIME
|
||||
#
|
||||
SET timestamp=UNIX_TIMESTAMP('2014-04-15 01:02:03');
|
||||
SELECT IF(1,TIME'10:20:30',DATE'2001-01-01');
|
||||
IF(1,TIME'10:20:30',DATE'2001-01-01')
|
||||
2014-04-15 10:20:30
|
||||
SELECT IFNULL(TIME'10:20:30',DATE'2001-01-01');
|
||||
IFNULL(TIME'10:20:30',DATE'2001-01-01')
|
||||
2014-04-15 10:20:30
|
||||
SELECT CASE WHEN 1 THEN TIME'10:20:30' ELSE DATE'2001-01-01' END;
|
||||
CASE WHEN 1 THEN TIME'10:20:30' ELSE DATE'2001-01-01' END
|
||||
2014-04-15 10:20:30
|
||||
SELECT COALESCE(TIME'10:20:30',DATE'2001-01-01');
|
||||
COALESCE(TIME'10:20:30',DATE'2001-01-01')
|
||||
2014-04-15 10:20:30
|
||||
SET timestamp=DEFAULT;
|
||||
|
@@ -2525,3 +2525,29 @@ DROP USER mysqltest_u1@localhost;
|
||||
|
||||
# End of Bug#38347.
|
||||
|
||||
#
|
||||
# Bug#11756966 - 48958: STORED PROCEDURES CAN BE LEVERAGED TO BYPASS
|
||||
# DATABASE SECURITY
|
||||
#
|
||||
DROP DATABASE IF EXISTS secret;
|
||||
DROP DATABASE IF EXISTS no_such_db;
|
||||
CREATE DATABASE secret;
|
||||
GRANT USAGE ON *.* TO untrusted@localhost;
|
||||
# Connection con1
|
||||
SHOW GRANTS;
|
||||
Grants for untrusted@localhost
|
||||
GRANT USAGE ON *.* TO 'untrusted'@'localhost'
|
||||
SHOW DATABASES;
|
||||
Database
|
||||
information_schema
|
||||
test
|
||||
# Both statements below should fail with the same error.
|
||||
# They used to give different errors, thereby
|
||||
# hinting that the secret database exists.
|
||||
CREATE PROCEDURE no_such_db.foo() BEGIN END;
|
||||
ERROR 42000: Access denied for user 'untrusted'@'localhost' to database 'no_such_db'
|
||||
CREATE PROCEDURE secret.peek_at_secret() BEGIN END;
|
||||
ERROR 42000: Access denied for user 'untrusted'@'localhost' to database 'secret'
|
||||
# Connection default
|
||||
DROP USER untrusted@localhost;
|
||||
DROP DATABASE secret;
|
||||
|
@@ -1358,8 +1358,9 @@ explain select a1,a2,b,min(c),max(c) from t1
|
||||
where exists ( select * from t2 where t2.c = t1.c )
|
||||
group by a1,a2,b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 index NULL idx_t1_1 163 NULL 128 Using where; Using index
|
||||
2 DEPENDENT SUBQUERY t2 index NULL idx_t2_1 163 NULL 164 Using where; Using index
|
||||
1 PRIMARY t1 index NULL idx_t1_1 163 NULL 128 Using index
|
||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 16 func 1
|
||||
2 MATERIALIZED t2 index NULL idx_t2_1 163 NULL 164 Using index
|
||||
select a1,a2,b,min(c),max(c) from t1
|
||||
where exists ( select * from t2 where t2.c = t1.c )
|
||||
group by a1,a2,b;
|
||||
@@ -1384,7 +1385,7 @@ explain select a1,a2,b,min(c),max(c) from t1
|
||||
where exists ( select * from t2 where t2.c > 'b1' )
|
||||
group by a1,a2,b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 range NULL idx_t1_1 147 NULL 17 Using where; Using index for group-by
|
||||
1 PRIMARY t1 index NULL idx_t1_1 163 NULL 128 Using index
|
||||
2 SUBQUERY t2 index NULL idx_t2_1 163 NULL 164 Using where; Using index
|
||||
select a1,a2,b,min(c),max(c) from t1
|
||||
where exists ( select * from t2 where t2.c > 'b1' )
|
||||
@@ -1410,20 +1411,20 @@ explain select a1,a2,b,c,min(c), max(c) from t1
|
||||
where exists ( select * from t2 where t1.b > 'a' and t2.c > 'b1' )
|
||||
group by a1,a2,b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 range NULL idx_t1_1 147 NULL 17 Using where; Using index for group-by
|
||||
1 PRIMARY t1 index NULL idx_t1_1 163 NULL 128 Using where; Using index
|
||||
2 DEPENDENT SUBQUERY t2 index NULL idx_t2_1 163 NULL 164 Using where; Using index
|
||||
select a1,a2,b,c,min(c), max(c) from t1
|
||||
where exists ( select * from t2 where t1.b > 'a' and t2.c > 'b1' )
|
||||
group by a1,a2,b;
|
||||
a1 a2 b c min(c) max(c)
|
||||
a a b h112 e112 h112
|
||||
a b b p122 m122 p122
|
||||
b a b h212 e212 h212
|
||||
b b b p222 m222 p222
|
||||
c a b h312 e312 h312
|
||||
c b b p322 m322 p322
|
||||
d a b h412 e412 h412
|
||||
d b b p422 m422 p422
|
||||
a a b e112 e112 h112
|
||||
a b b m122 m122 p122
|
||||
b a b e212 e212 h212
|
||||
b b b m222 m222 p222
|
||||
c a b e312 e312 h312
|
||||
c b b m322 m322 p322
|
||||
d a b e412 e412 h412
|
||||
d b b m422 m422 p422
|
||||
SET @save_optimizer_switch=@@optimizer_switch;
|
||||
SET optimizer_switch='semijoin_with_cache=off';
|
||||
explain select a1,a2,b,c,min(c), max(c) from t1
|
||||
@@ -1432,7 +1433,7 @@ where t2.c in (select c from t3 where t3.c > t1.b) and
|
||||
t2.c > 'b1' )
|
||||
group by a1,a2,b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 range NULL idx_t1_1 147 NULL 17 Using where; Using index for group-by
|
||||
1 PRIMARY t1 index NULL idx_t1_1 163 NULL 128 Using where; Using index
|
||||
2 DEPENDENT SUBQUERY t2 index NULL idx_t2_1 163 NULL 164 Using where; Using index
|
||||
2 DEPENDENT SUBQUERY t3 index NULL idx_t3_1 10 NULL 192 Using where; Using index; FirstMatch(t2)
|
||||
select a1,a2,b,c,min(c), max(c) from t1
|
||||
@@ -1441,22 +1442,22 @@ where t2.c in (select c from t3 where t3.c > t1.b) and
|
||||
t2.c > 'b1' )
|
||||
group by a1,a2,b;
|
||||
a1 a2 b c min(c) max(c)
|
||||
a a a d111 a111 d111
|
||||
a a b h112 e112 h112
|
||||
a b a l121 i121 l121
|
||||
a b b p122 m122 p122
|
||||
b a a d211 a211 d211
|
||||
b a b h212 e212 h212
|
||||
b b a l221 i221 l221
|
||||
b b b p222 m222 p222
|
||||
c a a d311 a311 d311
|
||||
c a b h312 e312 h312
|
||||
c b a l321 i321 l321
|
||||
c b b p322 m322 p322
|
||||
d a a d411 a411 d411
|
||||
d a b h412 e412 h412
|
||||
d b a l421 i421 l421
|
||||
d b b p422 m422 p422
|
||||
a a a a111 a111 d111
|
||||
a a b e112 e112 h112
|
||||
a b a i121 i121 l121
|
||||
a b b m122 m122 p122
|
||||
b a a a211 a211 d211
|
||||
b a b e212 e212 h212
|
||||
b b a i221 i221 l221
|
||||
b b b m222 m222 p222
|
||||
c a a a311 a311 d311
|
||||
c a b e312 e312 h312
|
||||
c b a i321 i321 l321
|
||||
c b b m322 m322 p322
|
||||
d a a a411 a411 d411
|
||||
d a b e412 e412 h412
|
||||
d b a i421 i421 l421
|
||||
d b b m422 m422 p422
|
||||
SET optimizer_switch=@save_optimizer_switch;
|
||||
explain select a1,a2,b,c,min(c), max(c) from t1
|
||||
where exists ( select * from t2 where t1.c > 'a' and t2.c > 'b1' )
|
||||
|
@@ -552,9 +552,9 @@ explain select * from t1
|
||||
where exists (select 1 from t2, t3
|
||||
where t2.a=t1.a and (t3.a=t2.b or t3.b=t2.b or t3.b=t2.b+1));
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
|
||||
2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 2 Using where
|
||||
2 DEPENDENT SUBQUERY t3 ALL a,b NULL NULL NULL 1002 Range checked for each record (index map: 0x3)
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2
|
||||
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where
|
||||
1 PRIMARY t3 ALL a,b NULL NULL NULL 1002 Range checked for each record (index map: 0x3); FirstMatch(t1)
|
||||
select * from t1
|
||||
where exists (select 1 from t2, t3
|
||||
where t2.a=t1.a and (t3.a=t2.b or t3.b=t2.b or t3.b=t2.b+1));
|
||||
|
@@ -1130,7 +1130,7 @@ CREATE PROCEDURE p1 ()
|
||||
BEGIN
|
||||
SELECT 'foo' FROM DUAL;
|
||||
END |
|
||||
ERROR 42000: Unknown database 'information_schema'
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
select ROUTINE_NAME from routines where ROUTINE_SCHEMA='information_schema';
|
||||
ROUTINE_NAME
|
||||
grant all on information_schema.* to 'user1'@'localhost';
|
||||
|
@@ -5577,8 +5577,8 @@ EXPLAIN
|
||||
SELECT * FROM t1, t2 LEFT JOIN t3 ON t2.b=t3.b WHERE t1.a=t2.a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 2
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
|
||||
1 SIMPLE t3 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (incremental, BNL join)
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 12 Using where
|
||||
1 SIMPLE t3 ALL NULL NULL NULL NULL 3 Using where
|
||||
SELECT * FROM t1, t2 LEFT JOIN t3 ON t2.b=t3.b WHERE t1.a=t2.a;
|
||||
a a b b c
|
||||
3 3 30 30 300
|
||||
@@ -5703,4 +5703,27 @@ select @counter;
|
||||
2
|
||||
drop table t1,t2,t3;
|
||||
set expensive_subquery_limit=default;
|
||||
#
|
||||
# mdev-6071: EXPLAIN chooses to use join buffer while execution turns it down
|
||||
#
|
||||
create table t1 (a int);
|
||||
insert into t1 values
|
||||
(7), (9), (1), (4), (2), (3), (5), (8), (11), (6), (10);
|
||||
explain select count(*) from t1, t1 t2 where t1.a=t2.a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 11
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 11 Using where; Using join buffer (flat, BNL join)
|
||||
set join_buffer_space_limit=1024*8;
|
||||
select @@join_buffer_space_limit;
|
||||
@@join_buffer_space_limit
|
||||
8192
|
||||
select @@join_buffer_size;
|
||||
@@join_buffer_size
|
||||
131072
|
||||
explain select count(*) from t1, t1 t2 where t1.a=t2.a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 11
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 11 Using where
|
||||
set join_buffer_space_limit=default;
|
||||
drop table t1;
|
||||
set @@optimizer_switch=@save_optimizer_switch;
|
||||
|
@@ -520,3 +520,15 @@ LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug11735141.txt' INTO TABLE t1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
|
||||
drop table t1;
|
||||
End of 5.1 tests
|
||||
#
|
||||
# Bug#11759519 INFINITE HANG WITH 100% CPU USAGE WITH LOAD DATA LOCAL AND IMPORT ERRORS
|
||||
#
|
||||
SET @old_mode= @@sql_mode;
|
||||
CREATE TABLE t1 (fld1 INT);
|
||||
SET sql_mode='strict_all_tables';
|
||||
# Without fix, load data hangs forever.
|
||||
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/mysql' REPLACE INTO TABLE t1
|
||||
FIELDS TERMINATED BY 't' LINES TERMINATED BY '';
|
||||
Got one of the listed errors
|
||||
SET @@sql_mode= @old_mode;
|
||||
DROP TABLE t1;
|
||||
|
@@ -1172,12 +1172,12 @@ INSERT INTO t1 (i) VALUES (10),(11),(12),(13),(14),(15),(16),(17),(18),(19),
|
||||
#
|
||||
EXPLAIN DELETE FROM t1 WHERE i > 10 AND i <= 18 ORDER BY i LIMIT 5;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 8 Using where
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 5 Using where
|
||||
FLUSH STATUS;
|
||||
FLUSH TABLES;
|
||||
EXPLAIN EXTENDED DELETE FROM t1 WHERE i > 10 AND i <= 18 ORDER BY i LIMIT 5;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 8 100.00 Using where
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 5 100.00 Using where
|
||||
# Status of EXPLAIN EXTENDED query
|
||||
Variable_name Value
|
||||
FLUSH STATUS;
|
||||
@@ -1479,12 +1479,12 @@ INSERT INTO t2 (i) SELECT i FROM t1;
|
||||
#
|
||||
EXPLAIN DELETE FROM t2 WHERE i > 10 AND i <= 18 ORDER BY i DESC LIMIT 5;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 8 Using where
|
||||
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 5 Using where
|
||||
FLUSH STATUS;
|
||||
FLUSH TABLES;
|
||||
EXPLAIN EXTENDED DELETE FROM t2 WHERE i > 10 AND i <= 18 ORDER BY i DESC LIMIT 5;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 8 100.00 Using where
|
||||
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 5 100.00 Using where
|
||||
# Status of EXPLAIN EXTENDED query
|
||||
Variable_name Value
|
||||
FLUSH STATUS;
|
||||
@@ -1606,12 +1606,12 @@ INSERT INTO t2 (i) SELECT i FROM t1;
|
||||
#
|
||||
EXPLAIN UPDATE t2 SET a = 10 WHERE i > 10 AND i <= 18 ORDER BY i LIMIT 5;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 8 Using where; Using buffer
|
||||
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 5 Using where; Using buffer
|
||||
FLUSH STATUS;
|
||||
FLUSH TABLES;
|
||||
EXPLAIN EXTENDED UPDATE t2 SET a = 10 WHERE i > 10 AND i <= 18 ORDER BY i LIMIT 5;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 8 100.00 Using where; Using buffer
|
||||
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 5 100.00 Using where; Using buffer
|
||||
# Status of EXPLAIN EXTENDED query
|
||||
Variable_name Value
|
||||
FLUSH STATUS;
|
||||
@@ -1915,12 +1915,12 @@ INSERT INTO t2 (i) SELECT i FROM t1;
|
||||
#
|
||||
EXPLAIN UPDATE t2 SET a = 10 WHERE i > 10 AND i <= 18 ORDER BY i DESC LIMIT 5;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 8 Using where; Using buffer
|
||||
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 5 Using where; Using buffer
|
||||
FLUSH STATUS;
|
||||
FLUSH TABLES;
|
||||
EXPLAIN EXTENDED UPDATE t2 SET a = 10 WHERE i > 10 AND i <= 18 ORDER BY i DESC LIMIT 5;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 8 100.00 Using where; Using buffer
|
||||
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 5 100.00 Using where; Using buffer
|
||||
# Status of EXPLAIN EXTENDED query
|
||||
Variable_name Value
|
||||
FLUSH STATUS;
|
||||
|
@@ -150,6 +150,60 @@ CHECK TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
DROP TABLE t1;
|
||||
create table `t1` (`id` varchar(15) DEFAULT NULL) ENGINE=MyISAM ROW_FORMAT=FIXED;
|
||||
insert into t1 values ('aaa'),('bbb'),('ccc'),('ddd'),('eee');
|
||||
insert into t1 (select * from t1);
|
||||
insert into t1 (select * from t1);
|
||||
insert into t1 (select * from t1);
|
||||
insert into t1 (select * from t1);
|
||||
checksum table t1;
|
||||
Table Checksum
|
||||
test.t1 2696656816
|
||||
insert into t1 values(NULL);
|
||||
checksum table t1;
|
||||
Table Checksum
|
||||
test.t1 2679879600
|
||||
flush table t1;
|
||||
check table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
checksum table t1;
|
||||
Table Checksum
|
||||
test.t1 2679879600
|
||||
alter table t1 checksum=1 row_format=fixed;
|
||||
checksum table t1;
|
||||
Table Checksum
|
||||
test.t1 2679879600
|
||||
flush table t1;
|
||||
check table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
checksum table t1;
|
||||
Table Checksum
|
||||
test.t1 2679879600
|
||||
alter table t1 row_format=dynamic checksum=0;
|
||||
checksum table t1;
|
||||
Table Checksum
|
||||
test.t1 2330021136
|
||||
flush table t1;
|
||||
check table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
checksum table t1;
|
||||
Table Checksum
|
||||
test.t1 2330021136
|
||||
alter table t1 checksum=1 row_format=dynamic;
|
||||
checksum table t1;
|
||||
Table Checksum
|
||||
test.t1 2330021136
|
||||
flush table t1;
|
||||
check table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
checksum table t1;
|
||||
Table Checksum
|
||||
test.t1 2330021136
|
||||
drop table t1;
|
||||
#
|
||||
# BUG#11751736: DROP DATABASE STATEMENT SHOULD REMOVE .OLD SUFFIX FROM
|
||||
# DATABASE DIRECTORY
|
||||
|
@@ -553,7 +553,6 @@ The following options may be given as the first argument:
|
||||
record samples
|
||||
--performance-schema
|
||||
Enable the performance schema.
|
||||
(Defaults to on; use --skip-performance-schema to disable.)
|
||||
--performance-schema-accounts-size=#
|
||||
Maximum number of instrumented user@host accounts. Use 0
|
||||
to disable, -1 for automated sizing.
|
||||
@@ -683,7 +682,7 @@ The following options may be given as the first argument:
|
||||
plugins from a given library_file will be loaded.
|
||||
--plugin-load-add=name
|
||||
Optional semicolon-separated list of plugins to load.
|
||||
This option adds to the list speficied by --plugin-load
|
||||
This option adds to the list specified by --plugin-load
|
||||
in an incremental way. It can be specified many times,
|
||||
adding more plugins every time.
|
||||
--plugin-maturity=name
|
||||
@@ -756,7 +755,7 @@ The following options may be given as the first argument:
|
||||
--relay-log-space-limit=#
|
||||
Maximum space to use for all relay logs
|
||||
--replicate-annotate-row-events
|
||||
Tells the slave to write annotate rows events recieved
|
||||
Tells the slave to write annotate rows events received
|
||||
from the master to its own binary log. Ignored if
|
||||
log_slave_updates is not set
|
||||
--replicate-do-db=name
|
||||
@@ -1284,10 +1283,10 @@ old-style-user-limits FALSE
|
||||
optimizer-prune-level 1
|
||||
optimizer-search-depth 62
|
||||
optimizer-selectivity-sampling-limit 100
|
||||
optimizer-switch index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on,extended_keys=on
|
||||
optimizer-switch index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on,extended_keys=on,exists_to_in=on
|
||||
optimizer-use-condition-selectivity 1
|
||||
performance-schema TRUE
|
||||
performance-schema-accounts-size 10
|
||||
performance-schema FALSE
|
||||
performance-schema-accounts-size -1
|
||||
performance-schema-consumer-events-stages-current FALSE
|
||||
performance-schema-consumer-events-stages-history FALSE
|
||||
performance-schema-consumer-events-stages-history-long FALSE
|
||||
@@ -1300,36 +1299,36 @@ performance-schema-consumer-events-waits-history-long FALSE
|
||||
performance-schema-consumer-global-instrumentation TRUE
|
||||
performance-schema-consumer-statements-digest TRUE
|
||||
performance-schema-consumer-thread-instrumentation TRUE
|
||||
performance-schema-digests-size 1000
|
||||
performance-schema-events-stages-history-long-size 100
|
||||
performance-schema-events-stages-history-size 5
|
||||
performance-schema-events-statements-history-long-size 100
|
||||
performance-schema-events-statements-history-size 5
|
||||
performance-schema-events-waits-history-long-size 100
|
||||
performance-schema-events-waits-history-size 5
|
||||
performance-schema-hosts-size 20
|
||||
performance-schema-digests-size -1
|
||||
performance-schema-events-stages-history-long-size -1
|
||||
performance-schema-events-stages-history-size -1
|
||||
performance-schema-events-statements-history-long-size -1
|
||||
performance-schema-events-statements-history-size -1
|
||||
performance-schema-events-waits-history-long-size -1
|
||||
performance-schema-events-waits-history-size -1
|
||||
performance-schema-hosts-size -1
|
||||
performance-schema-instrument
|
||||
performance-schema-max-cond-classes 80
|
||||
performance-schema-max-cond-instances 836
|
||||
performance-schema-max-cond-instances -1
|
||||
performance-schema-max-file-classes 50
|
||||
performance-schema-max-file-handles 32768
|
||||
performance-schema-max-file-instances 1556
|
||||
performance-schema-max-file-instances -1
|
||||
performance-schema-max-mutex-classes 200
|
||||
performance-schema-max-mutex-instances 3282
|
||||
performance-schema-max-mutex-instances -1
|
||||
performance-schema-max-rwlock-classes 40
|
||||
performance-schema-max-rwlock-instances 1724
|
||||
performance-schema-max-rwlock-instances -1
|
||||
performance-schema-max-socket-classes 10
|
||||
performance-schema-max-socket-instances 179
|
||||
performance-schema-max-socket-instances -1
|
||||
performance-schema-max-stage-classes 150
|
||||
performance-schema-max-statement-classes 180
|
||||
performance-schema-max-table-handles 445
|
||||
performance-schema-max-table-instances 445
|
||||
performance-schema-max-table-handles -1
|
||||
performance-schema-max-table-instances -1
|
||||
performance-schema-max-thread-classes 50
|
||||
performance-schema-max-thread-instances 224
|
||||
performance-schema-session-connect-attrs-size 512
|
||||
performance-schema-max-thread-instances -1
|
||||
performance-schema-session-connect-attrs-size -1
|
||||
performance-schema-setup-actors-size 100
|
||||
performance-schema-setup-objects-size 100
|
||||
performance-schema-users-size 5
|
||||
performance-schema-users-size -1
|
||||
plugin-maturity unknown
|
||||
port 3306
|
||||
port-open-timeout 0
|
||||
|
@@ -95,8 +95,9 @@ INSERT INTO t1 VALUES (NULL, '00:20:12');
|
||||
INSERT INTO t1 VALUES (NULL, '-00:20:12');
|
||||
SELECT IF(1,ADDDATE(IFNULL(a,b),0),1) FROM t1;
|
||||
IF(1,ADDDATE(IFNULL(a,b),0),1)
|
||||
0000-00-00 00:20:12
|
||||
NULL
|
||||
NULL
|
||||
Warnings:
|
||||
Warning 1292 Incorrect datetime value: '0000-00-00 00:20:12'
|
||||
Warning 1292 Truncated incorrect datetime value: '-00:20:12'
|
||||
DROP TABLE t1;
|
||||
|
@@ -2936,3 +2936,16 @@ where A.b = B.b
|
||||
order by A.col2, B.col2 limit 10, 1000000;
|
||||
drop table t1,t2,t3;
|
||||
End of 5.5 tests
|
||||
#
|
||||
# MDEV-5884: EXPLAIN UPDATE ... ORDER BY LIMIT shows wrong #rows
|
||||
#
|
||||
create table t2(a int);
|
||||
insert into t2 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||
create table t1 (key1 int, col1 int, key(key1));
|
||||
insert into t1
|
||||
select A.a + 10 * B.a + 100 * C.a, 1234 from t2 A, t2 B, t2 C;
|
||||
# Should show rows=2, not rows=100
|
||||
explain update t1 set key1=key1+1 where key1 between 10 and 110 order by key1 limit 2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range key1 key1 5 NULL 2 Using where; Using buffer
|
||||
drop table t1,t2;
|
||||
|
@@ -147,6 +147,14 @@ SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a, b, c;
|
||||
a b c
|
||||
1 ABC-АБВ DEF-ÂÃÄ
|
||||
2 NULL NULL
|
||||
SELECT * FROM t1;
|
||||
a b c
|
||||
1 ABC-АБВ DEF-ÂÃÄ
|
||||
2 NULL NULL
|
||||
SELECT * FROM t2;
|
||||
a b c
|
||||
1 ABC-АБВ DEF-ÂÃÄ
|
||||
2 NULL NULL
|
||||
SELECT * FROM t1 INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/t1.txt' LINES STARTING BY 'ъ';
|
||||
Warnings:
|
||||
Warning 1638 Non-ASCII separator arguments are not fully supported
|
||||
@@ -175,6 +183,14 @@ SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a, b, c;
|
||||
a b c
|
||||
1 ABC-АБВ DEF-ÂÃÄ
|
||||
2 NULL NULL
|
||||
SELECT * FROM t1;
|
||||
a b c
|
||||
1 ABC-АБВ DEF-ÂÃÄ
|
||||
2 NULL NULL
|
||||
SELECT * FROM t2;
|
||||
a b c
|
||||
1 ABC-АБВ DEF-ÂÃÄ
|
||||
2 NULL NULL
|
||||
# Default (binary) charset:
|
||||
SELECT * INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/t1.txt' FROM t1;
|
||||
##################################################
|
||||
|
@@ -3301,3 +3301,55 @@ explain partitions select * from t1 where a between 10 and 10+33;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0,p1,p2 ALL NULL NULL NULL NULL 100 Using where
|
||||
drop table t0, t1;
|
||||
#
|
||||
# MDEV-6239: Partition pruning is not working as expected in an inner query
|
||||
#
|
||||
create table t1
|
||||
(
|
||||
company_id bigint(5),
|
||||
dept_id bigint(5),
|
||||
emp_id bigint(5),
|
||||
emp_name varchar(100),
|
||||
primary key (company_id, emp_id)
|
||||
) partition by list (company_id) (
|
||||
partition p_1000 values in (1000),
|
||||
partition p_2000 values in (2000),
|
||||
partition p_3000 values in (3000)
|
||||
);
|
||||
create table t2
|
||||
(
|
||||
company_id bigint(5),
|
||||
dept_id bigint(5),
|
||||
dept_name varchar(100),
|
||||
primary key (company_id, dept_id)
|
||||
) partition by list (company_id) (
|
||||
partition p_1000 values in (1000),
|
||||
partition p_2000 values in (2000),
|
||||
partition p_3000 values in (3000)
|
||||
);
|
||||
insert into t2 values
|
||||
(1000, 10, 'Engineering'),
|
||||
(1000, 20, 'Product Management'),
|
||||
(1000, 30, 'QA'),
|
||||
(2000, 40, 'Support'),
|
||||
(2000, 50, 'Professional Services');
|
||||
insert into t1 values
|
||||
(1000, 10, 1, 'John'),
|
||||
(1000, 10, 2, 'Smith'),
|
||||
(1000, 20, 3, 'Jacob'),
|
||||
(1000, 20, 4, 'Brian'),
|
||||
(1000, 30, 5, 'Chris'),
|
||||
(1000, 30, 6, 'Ryan'),
|
||||
(2000, 40, 7, 'Karin'),
|
||||
(2000, 40, 8, 'Jay'),
|
||||
(2000, 50, 9, 'Ana'),
|
||||
(2000, 50, 10, 'Jessica');
|
||||
# Table t2 should have only partition p_1000.
|
||||
explain partitions
|
||||
select * from t1
|
||||
where company_id = 1000
|
||||
and dept_id in (select dept_id from t2 where COMPANY_ID = 1000);
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t2 p_1000 ref PRIMARY PRIMARY 8 const 2 Using index
|
||||
1 PRIMARY t1 p_1000 ALL PRIMARY NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
|
||||
drop table t1,t2;
|
||||
|
@@ -613,8 +613,8 @@ insert into t2 values ("1", "1", "sup", "0"), ("2", "1", "sup", "1"),
|
||||
("4", "1", "sup", "0");
|
||||
create table t3 (
|
||||
id int(11) not null default '0',
|
||||
preceeding_id int(11) not null default '0',
|
||||
primary key (id,preceeding_id)
|
||||
preceding_id int(11) not null default '0',
|
||||
primary key (id,preceding_id)
|
||||
);
|
||||
create table t4 (
|
||||
user_id varchar(50) not null,
|
||||
@@ -625,7 +625,7 @@ insert into t4 values("nicke", "imp");
|
||||
prepare stmt from
|
||||
'select distinct t1.partner_id
|
||||
from t1 left join t3 on t1.id = t3.id
|
||||
left join t1 pp on pp.id = t3.preceeding_id
|
||||
left join t1 pp on pp.id = t3.preceding_id
|
||||
where
|
||||
exists (
|
||||
select *
|
||||
|
@@ -3256,7 +3256,7 @@ values
|
||||
( 50, 1.0e+10, 1.0e+10, 1.0e+10, 1.0e+10, 1.0e+10 ) ;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1265 Data truncated for column 'c16' at row 1
|
||||
Note 1265 Data truncated for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
insert into t9
|
||||
( c1, c13, c14, c15, c16, c17 )
|
||||
@@ -3264,7 +3264,7 @@ values
|
||||
( 51, @arg00, @arg00, @arg00, @arg00, @arg00) ;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1265 Data truncated for column 'c16' at row 1
|
||||
Note 1265 Data truncated for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
prepare stmt1 from "insert into t9
|
||||
( c1, c13, c14, c15, c16, c17 )
|
||||
@@ -3273,7 +3273,7 @@ values
|
||||
execute stmt1 ;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1265 Data truncated for column 'c16' at row 1
|
||||
Note 1265 Data truncated for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
prepare stmt2 from "insert into t9
|
||||
( c1, c13, c14, c15, c16, c17 )
|
||||
@@ -3282,7 +3282,7 @@ values
|
||||
execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00 ;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1265 Data truncated for column 'c16' at row 1
|
||||
Note 1265 Data truncated for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
set @arg00= 'abc' ;
|
||||
set @arg00= NULL ;
|
||||
|
@@ -3239,7 +3239,7 @@ values
|
||||
( 50, 1.0e+10, 1.0e+10, 1.0e+10, 1.0e+10, 1.0e+10 ) ;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1265 Data truncated for column 'c16' at row 1
|
||||
Note 1265 Data truncated for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
insert into t9
|
||||
( c1, c13, c14, c15, c16, c17 )
|
||||
@@ -3247,7 +3247,7 @@ values
|
||||
( 51, @arg00, @arg00, @arg00, @arg00, @arg00) ;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1265 Data truncated for column 'c16' at row 1
|
||||
Note 1265 Data truncated for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
prepare stmt1 from "insert into t9
|
||||
( c1, c13, c14, c15, c16, c17 )
|
||||
@@ -3256,7 +3256,7 @@ values
|
||||
execute stmt1 ;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1265 Data truncated for column 'c16' at row 1
|
||||
Note 1265 Data truncated for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
prepare stmt2 from "insert into t9
|
||||
( c1, c13, c14, c15, c16, c17 )
|
||||
@@ -3265,7 +3265,7 @@ values
|
||||
execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00 ;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1265 Data truncated for column 'c16' at row 1
|
||||
Note 1265 Data truncated for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
set @arg00= 'abc' ;
|
||||
set @arg00= NULL ;
|
||||
|
@@ -3240,7 +3240,7 @@ values
|
||||
( 50, 1.0e+10, 1.0e+10, 1.0e+10, 1.0e+10, 1.0e+10 ) ;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1265 Data truncated for column 'c16' at row 1
|
||||
Note 1265 Data truncated for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
insert into t9
|
||||
( c1, c13, c14, c15, c16, c17 )
|
||||
@@ -3248,7 +3248,7 @@ values
|
||||
( 51, @arg00, @arg00, @arg00, @arg00, @arg00) ;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1265 Data truncated for column 'c16' at row 1
|
||||
Note 1265 Data truncated for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
prepare stmt1 from "insert into t9
|
||||
( c1, c13, c14, c15, c16, c17 )
|
||||
@@ -3257,7 +3257,7 @@ values
|
||||
execute stmt1 ;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1265 Data truncated for column 'c16' at row 1
|
||||
Note 1265 Data truncated for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
prepare stmt2 from "insert into t9
|
||||
( c1, c13, c14, c15, c16, c17 )
|
||||
@@ -3266,7 +3266,7 @@ values
|
||||
execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00 ;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1265 Data truncated for column 'c16' at row 1
|
||||
Note 1265 Data truncated for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
set @arg00= 'abc' ;
|
||||
set @arg00= NULL ;
|
||||
|
@@ -3176,7 +3176,7 @@ values
|
||||
( 50, 1.0e+10, 1.0e+10, 1.0e+10, 1.0e+10, 1.0e+10 ) ;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1265 Data truncated for column 'c16' at row 1
|
||||
Note 1265 Data truncated for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
insert into t9
|
||||
( c1, c13, c14, c15, c16, c17 )
|
||||
@@ -3184,7 +3184,7 @@ values
|
||||
( 51, @arg00, @arg00, @arg00, @arg00, @arg00) ;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1265 Data truncated for column 'c16' at row 1
|
||||
Note 1265 Data truncated for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
prepare stmt1 from "insert into t9
|
||||
( c1, c13, c14, c15, c16, c17 )
|
||||
@@ -3193,7 +3193,7 @@ values
|
||||
execute stmt1 ;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1265 Data truncated for column 'c16' at row 1
|
||||
Note 1265 Data truncated for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
prepare stmt2 from "insert into t9
|
||||
( c1, c13, c14, c15, c16, c17 )
|
||||
@@ -3202,7 +3202,7 @@ values
|
||||
execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00 ;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1265 Data truncated for column 'c16' at row 1
|
||||
Note 1265 Data truncated for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
set @arg00= 'abc' ;
|
||||
set @arg00= NULL ;
|
||||
@@ -6530,7 +6530,7 @@ values
|
||||
( 50, 1.0e+10, 1.0e+10, 1.0e+10, 1.0e+10, 1.0e+10 ) ;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1265 Data truncated for column 'c16' at row 1
|
||||
Note 1265 Data truncated for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
insert into t9
|
||||
( c1, c13, c14, c15, c16, c17 )
|
||||
@@ -6538,7 +6538,7 @@ values
|
||||
( 51, @arg00, @arg00, @arg00, @arg00, @arg00) ;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1265 Data truncated for column 'c16' at row 1
|
||||
Note 1265 Data truncated for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
prepare stmt1 from "insert into t9
|
||||
( c1, c13, c14, c15, c16, c17 )
|
||||
@@ -6547,7 +6547,7 @@ values
|
||||
execute stmt1 ;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1265 Data truncated for column 'c16' at row 1
|
||||
Note 1265 Data truncated for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
prepare stmt2 from "insert into t9
|
||||
( c1, c13, c14, c15, c16, c17 )
|
||||
@@ -6556,7 +6556,7 @@ values
|
||||
execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00 ;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1265 Data truncated for column 'c16' at row 1
|
||||
Note 1265 Data truncated for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
set @arg00= 'abc' ;
|
||||
set @arg00= NULL ;
|
||||
|
@@ -2047,6 +2047,60 @@ f1 f2 f3 f4
|
||||
DROP TABLE t1;
|
||||
DROP VIEW v3;
|
||||
#
|
||||
# MDEV-6105: Emoji unicode character string search query makes mariadb performance down
|
||||
#
|
||||
SET NAMES utf8;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
Warnings:
|
||||
Note 1051 Unknown table 'test.t1'
|
||||
CREATE TABLE t1(
|
||||
id int AUTO_INCREMENT,
|
||||
fd varchar(20),
|
||||
primary key(id),
|
||||
index ix_fd(fd)
|
||||
)engine=innodb default charset=UTF8;
|
||||
INSERT INTO t1(id, fd) VALUES (null, ''),(null, 'matt'),(null, 'pitt'),(null, 'lee'),(null, 'kim');
|
||||
INSERT INTO t1 (fd) SELECT fd FROM t1;
|
||||
INSERT INTO t1 (fd) SELECT fd FROM t1;
|
||||
INSERT INTO t1 (fd) SELECT fd FROM t1;
|
||||
INSERT INTO t1 (fd) SELECT fd FROM t1;
|
||||
INSERT INTO t1 (fd) SELECT fd FROM t1;
|
||||
INSERT INTO t1 (fd) SELECT fd FROM t1;
|
||||
INSERT INTO t1 (fd) SELECT fd FROM t1;
|
||||
INSERT INTO t1 (fd) SELECT fd FROM t1;
|
||||
INSERT INTO t1 (fd) SELECT fd FROM t1;
|
||||
INSERT INTO t1 (fd) SELECT fd FROM t1;
|
||||
INSERT INTO t1 (fd) SELECT fd FROM t1;
|
||||
INSERT INTO t1 (fd) SELECT fd FROM t1;
|
||||
INSERT INTO t1 (fd) SELECT fd FROM t1;
|
||||
# The following should show "Impossible WHERE" :
|
||||
explain
|
||||
SELECT * FROM t1 WHERE fd='😁';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9F\x98\x81' for column 'fd' at row 1
|
||||
SELECT * FROM t1 WHERE fd='😁';
|
||||
id fd
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9F\x98\x81' for column 'fd' at row 1
|
||||
# The following must not use range access:
|
||||
explain select count(*) from t1 where fd <'😁';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index ix_fd ix_fd 63 NULL # Using where; Using index
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9F\x98\x81' for column 'fd' at row 1
|
||||
select count(*) from t1 where fd <'😁';
|
||||
count(*)
|
||||
40960
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9F\x98\x81' for column 'fd' at row 1
|
||||
select count(*) from t1 ignore index (ix_fd) where fd <'😁';
|
||||
count(*)
|
||||
40960
|
||||
drop table t1;
|
||||
set names default;
|
||||
#
|
||||
# BUG#13731380: RANGE OPTIMIZER CALLS RECORDS_IN_RANGE() FOR OPEN RANGE
|
||||
#
|
||||
CREATE TABLE t1 (pk INT PRIMARY KEY);
|
||||
|
@@ -2049,6 +2049,60 @@ f1 f2 f3 f4
|
||||
DROP TABLE t1;
|
||||
DROP VIEW v3;
|
||||
#
|
||||
# MDEV-6105: Emoji unicode character string search query makes mariadb performance down
|
||||
#
|
||||
SET NAMES utf8;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
Warnings:
|
||||
Note 1051 Unknown table 'test.t1'
|
||||
CREATE TABLE t1(
|
||||
id int AUTO_INCREMENT,
|
||||
fd varchar(20),
|
||||
primary key(id),
|
||||
index ix_fd(fd)
|
||||
)engine=innodb default charset=UTF8;
|
||||
INSERT INTO t1(id, fd) VALUES (null, ''),(null, 'matt'),(null, 'pitt'),(null, 'lee'),(null, 'kim');
|
||||
INSERT INTO t1 (fd) SELECT fd FROM t1;
|
||||
INSERT INTO t1 (fd) SELECT fd FROM t1;
|
||||
INSERT INTO t1 (fd) SELECT fd FROM t1;
|
||||
INSERT INTO t1 (fd) SELECT fd FROM t1;
|
||||
INSERT INTO t1 (fd) SELECT fd FROM t1;
|
||||
INSERT INTO t1 (fd) SELECT fd FROM t1;
|
||||
INSERT INTO t1 (fd) SELECT fd FROM t1;
|
||||
INSERT INTO t1 (fd) SELECT fd FROM t1;
|
||||
INSERT INTO t1 (fd) SELECT fd FROM t1;
|
||||
INSERT INTO t1 (fd) SELECT fd FROM t1;
|
||||
INSERT INTO t1 (fd) SELECT fd FROM t1;
|
||||
INSERT INTO t1 (fd) SELECT fd FROM t1;
|
||||
INSERT INTO t1 (fd) SELECT fd FROM t1;
|
||||
# The following should show "Impossible WHERE" :
|
||||
explain
|
||||
SELECT * FROM t1 WHERE fd='😁';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9F\x98\x81' for column 'fd' at row 1
|
||||
SELECT * FROM t1 WHERE fd='😁';
|
||||
id fd
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9F\x98\x81' for column 'fd' at row 1
|
||||
# The following must not use range access:
|
||||
explain select count(*) from t1 where fd <'😁';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index ix_fd ix_fd 63 NULL # Using where; Using index
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9F\x98\x81' for column 'fd' at row 1
|
||||
select count(*) from t1 where fd <'😁';
|
||||
count(*)
|
||||
40960
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9F\x98\x81' for column 'fd' at row 1
|
||||
select count(*) from t1 ignore index (ix_fd) where fd <'😁';
|
||||
count(*)
|
||||
40960
|
||||
drop table t1;
|
||||
set names default;
|
||||
#
|
||||
# BUG#13731380: RANGE OPTIMIZER CALLS RECORDS_IN_RANGE() FOR OPEN RANGE
|
||||
#
|
||||
CREATE TABLE t1 (pk INT PRIMARY KEY);
|
||||
|
@@ -291,11 +291,7 @@ select found_rows();
|
||||
found_rows()
|
||||
1
|
||||
drop table t1, t2;
|
||||
create table t1 (
|
||||
a1 int auto_increment primary key,
|
||||
b1 datetime,
|
||||
c1 int
|
||||
);
|
||||
create table t1 (a1 int auto_increment primary key, c1 int);
|
||||
insert t1 (a1) values (null);
|
||||
insert t1 (a1) select null from t1;
|
||||
insert t1 (a1) select null from t1;
|
||||
@@ -307,20 +303,32 @@ insert t1 (a1) select null from t1;
|
||||
insert t1 (a1) select null from t1;
|
||||
insert t1 (a1) select null from t1;
|
||||
update t1 set c1=a1 % 2;
|
||||
create table t2 (
|
||||
a2 int,
|
||||
b2 int,
|
||||
c2 char(16) default '',
|
||||
primary key (a2, b2)
|
||||
);
|
||||
create table t2 (a2 int, b2 int, c2 char(16) default '', primary key (a2, b2));
|
||||
insert t2 select a1, 1, 'ok' from t1;
|
||||
insert t2 select a1, 2, 'ko' from t1;
|
||||
insert t2 select a1, 3, 'ko' from t1;
|
||||
insert t2 select a1, 4, 'ok' from t1;
|
||||
insert t2 select a1, 5, 'ok' from t1;
|
||||
select sql_calc_found_rows distinct a1,b1,c2 from t1 join t2 on a2=a1
|
||||
where a1 <= 256 and c1=0 and c2='ok' order by b1 desc, a1 desc limit 46;
|
||||
select sql_calc_found_rows distinct a1,c2 from t1 join t2 on a2=a1
|
||||
where a1 <= 256 and c1=0 and c2='ok' order by a1 desc limit 46;
|
||||
select found_rows();
|
||||
found_rows()
|
||||
128
|
||||
drop table t1, t2;
|
||||
create table t1 (i1 int, v1 int, primary key(i1,v1));
|
||||
insert into t1 values (1,1),(2,2),(3,3);
|
||||
create table t2 (i2 int primary key, v2 int);
|
||||
insert into t2 values (1,5),(2,5),(3,10);
|
||||
select 1 as res from t1 left join t2 on i1 = i2 where v2 = 5 or v1 = 5 or v1 = 10 order by v1;
|
||||
res
|
||||
1
|
||||
1
|
||||
select sql_calc_found_rows 1 as res from t1 left join t2 on i1 = i2 where v2 = 5 or v1 = 5 or v1 = 10 order by v1 limit 1;
|
||||
select found_rows() as count;
|
||||
count
|
||||
2
|
||||
select sql_calc_found_rows 1 as res from t1 left join t2 on i1 = i2 where v2 = 5 order by v1 limit 1;
|
||||
select found_rows() as count;
|
||||
count
|
||||
2
|
||||
drop table t1, t2;
|
||||
|
@@ -400,7 +400,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
3 SUBQUERY customer ALL NULL NULL NULL NULL 150 100.00 Using where
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'dbt3_s001.customer.c_custkey' of SELECT #4 was resolved in SELECT #2
|
||||
Note 1003 select substr(`dbt3_s001`.`customer`.`c_phone`,1,2) AS `cntrycode`,count(0) AS `numcust`,sum(`dbt3_s001`.`customer`.`c_acctbal`) AS `totacctbal` from `dbt3_s001`.`customer` where ((substr(`dbt3_s001`.`customer`.`c_phone`,1,2) in ('10','20','14','19','11','28','25')) and (`dbt3_s001`.`customer`.`c_acctbal` > (select avg(`dbt3_s001`.`customer`.`c_acctbal`) from `dbt3_s001`.`customer` where ((`dbt3_s001`.`customer`.`c_acctbal` > 0.00) and (substr(`dbt3_s001`.`customer`.`c_phone`,1,2) in ('10','20','14','19','11','28','25'))))) and (not(exists(select 1 from `dbt3_s001`.`orders` where (`dbt3_s001`.`orders`.`o_custkey` = `dbt3_s001`.`customer`.`c_custkey`))))) group by substr(`dbt3_s001`.`customer`.`c_phone`,1,2) order by substr(`dbt3_s001`.`customer`.`c_phone`,1,2)
|
||||
Note 1003 select substr(`dbt3_s001`.`customer`.`c_phone`,1,2) AS `cntrycode`,count(0) AS `numcust`,sum(`dbt3_s001`.`customer`.`c_acctbal`) AS `totacctbal` from `dbt3_s001`.`customer` where ((substr(`dbt3_s001`.`customer`.`c_phone`,1,2) in ('10','20','14','19','11','28','25')) and (`dbt3_s001`.`customer`.`c_acctbal` > (select avg(`dbt3_s001`.`customer`.`c_acctbal`) from `dbt3_s001`.`customer` where ((`dbt3_s001`.`customer`.`c_acctbal` > 0.00) and (substr(`dbt3_s001`.`customer`.`c_phone`,1,2) in ('10','20','14','19','11','28','25'))))) and (not(<in_optimizer>(1,exists(select 1 from `dbt3_s001`.`orders` where (`dbt3_s001`.`orders`.`o_custkey` = `dbt3_s001`.`customer`.`c_custkey`)))))) group by substr(`dbt3_s001`.`customer`.`c_phone`,1,2) order by substr(`dbt3_s001`.`customer`.`c_phone`,1,2)
|
||||
select cntrycode, count(*) as numcust, sum(c_acctbal) as totacctbal
|
||||
from (
|
||||
select substr(c_phone, 1, 2) as cntrycode, c_acctbal
|
||||
@@ -441,7 +441,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
3 SUBQUERY customer ALL NULL NULL NULL NULL 150 91.00 Using where
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'dbt3_s001.customer.c_custkey' of SELECT #4 was resolved in SELECT #2
|
||||
Note 1003 select substr(`dbt3_s001`.`customer`.`c_phone`,1,2) AS `cntrycode`,count(0) AS `numcust`,sum(`dbt3_s001`.`customer`.`c_acctbal`) AS `totacctbal` from `dbt3_s001`.`customer` where ((substr(`dbt3_s001`.`customer`.`c_phone`,1,2) in ('10','20','14','19','11','28','25')) and (`dbt3_s001`.`customer`.`c_acctbal` > (select avg(`dbt3_s001`.`customer`.`c_acctbal`) from `dbt3_s001`.`customer` where ((`dbt3_s001`.`customer`.`c_acctbal` > 0.00) and (substr(`dbt3_s001`.`customer`.`c_phone`,1,2) in ('10','20','14','19','11','28','25'))))) and (not(exists(select 1 from `dbt3_s001`.`orders` where (`dbt3_s001`.`orders`.`o_custkey` = `dbt3_s001`.`customer`.`c_custkey`))))) group by substr(`dbt3_s001`.`customer`.`c_phone`,1,2) order by substr(`dbt3_s001`.`customer`.`c_phone`,1,2)
|
||||
Note 1003 select substr(`dbt3_s001`.`customer`.`c_phone`,1,2) AS `cntrycode`,count(0) AS `numcust`,sum(`dbt3_s001`.`customer`.`c_acctbal`) AS `totacctbal` from `dbt3_s001`.`customer` where ((substr(`dbt3_s001`.`customer`.`c_phone`,1,2) in ('10','20','14','19','11','28','25')) and (`dbt3_s001`.`customer`.`c_acctbal` > (select avg(`dbt3_s001`.`customer`.`c_acctbal`) from `dbt3_s001`.`customer` where ((`dbt3_s001`.`customer`.`c_acctbal` > 0.00) and (substr(`dbt3_s001`.`customer`.`c_phone`,1,2) in ('10','20','14','19','11','28','25'))))) and (not(<in_optimizer>(1,exists(select 1 from `dbt3_s001`.`orders` where (`dbt3_s001`.`orders`.`o_custkey` = `dbt3_s001`.`customer`.`c_custkey`)))))) group by substr(`dbt3_s001`.`customer`.`c_phone`,1,2) order by substr(`dbt3_s001`.`customer`.`c_phone`,1,2)
|
||||
select cntrycode, count(*) as numcust, sum(c_acctbal) as totacctbal
|
||||
from (
|
||||
select substr(c_phone, 1, 2) as cntrycode, c_acctbal
|
||||
@@ -985,7 +985,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
2 SUBQUERY t2 ALL NULL NULL NULL NULL 7 100.00
|
||||
2 SUBQUERY t1 ALL NULL NULL NULL NULL 14 100.00 Using join buffer (flat, BNL join)
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t1` join `test`.`t2` where ((exists(select 1 from `test`.`t1` join `test`.`t2`) and (`test`.`t1`.`a` <> `test`.`t2`.`b`)) or (`test`.`t1`.`a` <= 4))
|
||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t1` join `test`.`t2` where ((<cache>(<in_optimizer>(1,exists(select 1 from `test`.`t1` join `test`.`t2`))) and (`test`.`t1`.`a` <> `test`.`t2`.`b`)) or (`test`.`t1`.`a` <= 4))
|
||||
set optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity;
|
||||
DROP TABLE t1,t2;
|
||||
set use_stat_tables=@save_use_stat_tables;
|
||||
|
@@ -403,7 +403,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
3 SUBQUERY customer ALL NULL NULL NULL NULL 150 100.00 Using where
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'dbt3_s001.customer.c_custkey' of SELECT #4 was resolved in SELECT #2
|
||||
Note 1003 select substr(`dbt3_s001`.`customer`.`c_phone`,1,2) AS `cntrycode`,count(0) AS `numcust`,sum(`dbt3_s001`.`customer`.`c_acctbal`) AS `totacctbal` from `dbt3_s001`.`customer` where ((substr(`dbt3_s001`.`customer`.`c_phone`,1,2) in ('10','20','14','19','11','28','25')) and (`dbt3_s001`.`customer`.`c_acctbal` > (select avg(`dbt3_s001`.`customer`.`c_acctbal`) from `dbt3_s001`.`customer` where ((`dbt3_s001`.`customer`.`c_acctbal` > 0.00) and (substr(`dbt3_s001`.`customer`.`c_phone`,1,2) in ('10','20','14','19','11','28','25'))))) and (not(exists(select 1 from `dbt3_s001`.`orders` where (`dbt3_s001`.`orders`.`o_custkey` = `dbt3_s001`.`customer`.`c_custkey`))))) group by substr(`dbt3_s001`.`customer`.`c_phone`,1,2) order by substr(`dbt3_s001`.`customer`.`c_phone`,1,2)
|
||||
Note 1003 select substr(`dbt3_s001`.`customer`.`c_phone`,1,2) AS `cntrycode`,count(0) AS `numcust`,sum(`dbt3_s001`.`customer`.`c_acctbal`) AS `totacctbal` from `dbt3_s001`.`customer` where ((substr(`dbt3_s001`.`customer`.`c_phone`,1,2) in ('10','20','14','19','11','28','25')) and (`dbt3_s001`.`customer`.`c_acctbal` > (select avg(`dbt3_s001`.`customer`.`c_acctbal`) from `dbt3_s001`.`customer` where ((`dbt3_s001`.`customer`.`c_acctbal` > 0.00) and (substr(`dbt3_s001`.`customer`.`c_phone`,1,2) in ('10','20','14','19','11','28','25'))))) and (not(<in_optimizer>(1,exists(select 1 from `dbt3_s001`.`orders` where (`dbt3_s001`.`orders`.`o_custkey` = `dbt3_s001`.`customer`.`c_custkey`)))))) group by substr(`dbt3_s001`.`customer`.`c_phone`,1,2) order by substr(`dbt3_s001`.`customer`.`c_phone`,1,2)
|
||||
select cntrycode, count(*) as numcust, sum(c_acctbal) as totacctbal
|
||||
from (
|
||||
select substr(c_phone, 1, 2) as cntrycode, c_acctbal
|
||||
@@ -444,7 +444,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
3 SUBQUERY customer ALL NULL NULL NULL NULL 150 91.00 Using where
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'dbt3_s001.customer.c_custkey' of SELECT #4 was resolved in SELECT #2
|
||||
Note 1003 select substr(`dbt3_s001`.`customer`.`c_phone`,1,2) AS `cntrycode`,count(0) AS `numcust`,sum(`dbt3_s001`.`customer`.`c_acctbal`) AS `totacctbal` from `dbt3_s001`.`customer` where ((substr(`dbt3_s001`.`customer`.`c_phone`,1,2) in ('10','20','14','19','11','28','25')) and (`dbt3_s001`.`customer`.`c_acctbal` > (select avg(`dbt3_s001`.`customer`.`c_acctbal`) from `dbt3_s001`.`customer` where ((`dbt3_s001`.`customer`.`c_acctbal` > 0.00) and (substr(`dbt3_s001`.`customer`.`c_phone`,1,2) in ('10','20','14','19','11','28','25'))))) and (not(exists(select 1 from `dbt3_s001`.`orders` where (`dbt3_s001`.`orders`.`o_custkey` = `dbt3_s001`.`customer`.`c_custkey`))))) group by substr(`dbt3_s001`.`customer`.`c_phone`,1,2) order by substr(`dbt3_s001`.`customer`.`c_phone`,1,2)
|
||||
Note 1003 select substr(`dbt3_s001`.`customer`.`c_phone`,1,2) AS `cntrycode`,count(0) AS `numcust`,sum(`dbt3_s001`.`customer`.`c_acctbal`) AS `totacctbal` from `dbt3_s001`.`customer` where ((substr(`dbt3_s001`.`customer`.`c_phone`,1,2) in ('10','20','14','19','11','28','25')) and (`dbt3_s001`.`customer`.`c_acctbal` > (select avg(`dbt3_s001`.`customer`.`c_acctbal`) from `dbt3_s001`.`customer` where ((`dbt3_s001`.`customer`.`c_acctbal` > 0.00) and (substr(`dbt3_s001`.`customer`.`c_phone`,1,2) in ('10','20','14','19','11','28','25'))))) and (not(<in_optimizer>(1,exists(select 1 from `dbt3_s001`.`orders` where (`dbt3_s001`.`orders`.`o_custkey` = `dbt3_s001`.`customer`.`c_custkey`)))))) group by substr(`dbt3_s001`.`customer`.`c_phone`,1,2) order by substr(`dbt3_s001`.`customer`.`c_phone`,1,2)
|
||||
select cntrycode, count(*) as numcust, sum(c_acctbal) as totacctbal
|
||||
from (
|
||||
select substr(c_phone, 1, 2) as cntrycode, c_acctbal
|
||||
@@ -995,7 +995,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
2 SUBQUERY t2 ALL NULL NULL NULL NULL 7 100.00
|
||||
2 SUBQUERY t1 ALL NULL NULL NULL NULL 14 100.00 Using join buffer (flat, BNL join)
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t1` join `test`.`t2` where ((exists(select 1 from `test`.`t1` join `test`.`t2`) and (`test`.`t1`.`a` <> `test`.`t2`.`b`)) or (`test`.`t1`.`a` <= 4))
|
||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t1` join `test`.`t2` where ((<cache>(<in_optimizer>(1,exists(select 1 from `test`.`t1` join `test`.`t2`))) and (`test`.`t1`.`a` <> `test`.`t2`.`b`)) or (`test`.`t1`.`a` <= 4))
|
||||
set optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity;
|
||||
DROP TABLE t1,t2;
|
||||
set use_stat_tables=@save_use_stat_tables;
|
||||
|
@@ -23,9 +23,9 @@ create table t1(a int);
|
||||
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||
create table t2 (col1 int);
|
||||
# one value in 1..100 range
|
||||
insert into t2 select A.a + B.a*10 from t1 A, t1 B;
|
||||
insert into t2 select ta.a + tb.a*10 from t1 ta, t1 tb;
|
||||
# ten values in 100...200 range
|
||||
insert into t2 select 100 + A.a + B.a*10 from t1 A, t1 B, t1 C;
|
||||
insert into t2 select 100 + ta.a + tb.a*10 from t1 ta, t1 tb, t1 tc;
|
||||
set histogram_type='SINGLE_PREC_HB';
|
||||
set histogram_size=100;
|
||||
set optimizer_use_condition_selectivity=4;
|
||||
@@ -51,7 +51,7 @@ drop table t1, t2;
|
||||
create table t0(a int);
|
||||
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||
create table t1(a int);
|
||||
insert into t1 select A.a from t0 A, t0 B, t0 C;
|
||||
insert into t1 select ta.a from t0 ta, t0 tb, t0 tc;
|
||||
set histogram_size=20;
|
||||
set histogram_type='single_prec_hb';
|
||||
analyze table t1 persistent for all;
|
||||
@@ -90,8 +90,8 @@ drop table t0, t1;
|
||||
#
|
||||
create table t1 (col1 int);
|
||||
set @a=-1;
|
||||
create table t2 (a int) select (@a:=@a+1) as a from information_schema.session_variables A limit 100;
|
||||
insert into t1 select A.a from t2 A, t2 B where A.a < 100 and B.a < 100;
|
||||
create table t2 (a int) select (@a:=@a+1) as a from information_schema.session_variables ta limit 100;
|
||||
insert into t1 select ta.a from t2 ta, t2 tb where ta.a < 100 and tb.a < 100;
|
||||
select min(col1), max(col1), count(*) from t1;
|
||||
min(col1) max(col1) count(*)
|
||||
0 99 10000
|
||||
@@ -123,7 +123,7 @@ drop table t1, t2;
|
||||
create table t1(a int);
|
||||
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||
create table t2 (a int, b int, col1 varchar(64), col2 varchar(64), key(a,b));
|
||||
insert into t2 select A.a+10*B.a, C.a+10*D.a, 'filler-data1', 'filler-data2' from t1 A, t1 B, t1 C, t1 D;
|
||||
insert into t2 select ta.a+10*tb.a, tc.a+10*td.a, 'filler-data1', 'filler-data2' from t1 ta, t1 tb, t1 tc, t1 td;
|
||||
set histogram_size=100;
|
||||
set optimizer_use_condition_selectivity=4;
|
||||
set use_stat_tables='preferably';
|
||||
@@ -144,7 +144,7 @@ drop table t2, t1;
|
||||
create table t0(a int);
|
||||
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||
create table t1(key1 int, col1 int, key(key1));
|
||||
insert into t1 select A.a, A.a from t0 A, t0 B, t0 C;
|
||||
insert into t1 select ta.a, ta.a from t0 ta, t0 tb, t0 tc;
|
||||
set histogram_size=100;
|
||||
set use_stat_tables='preferably';
|
||||
set optimizer_use_condition_selectivity=4;
|
||||
@@ -177,11 +177,11 @@ key(kp1, kp2)
|
||||
);
|
||||
insert into t1
|
||||
select
|
||||
A.a,
|
||||
B.a,
|
||||
ta.a,
|
||||
tb.a,
|
||||
'filler-data-1',
|
||||
'filler-data-2'
|
||||
from t0 A, t0 B, t0 C;
|
||||
from t0 ta, t0 tb, t0 tc;
|
||||
set histogram_size=100;
|
||||
set use_stat_tables='preferably';
|
||||
set optimizer_use_condition_selectivity=4;
|
||||
@@ -215,6 +215,68 @@ SELECT * FROM t1 AS t1_1, t1 AS t1_2 WHERE NOT ( t1_1.a <> 'baz');
|
||||
a b a b
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-6308: Server crashes in table_multi_eq_cond_selectivity with ...
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
id varchar(40) COLLATE utf8_bin,
|
||||
dt datetime,
|
||||
PRIMARY KEY (id)
|
||||
);
|
||||
INSERT INTO t1 VALUES ('foo','2011-04-12 05:18:08'),
|
||||
('bar','2013-09-19 11:37:03');
|
||||
CREATE TABLE t2 (
|
||||
t1_id varchar(40) COLLATE utf8_bin,
|
||||
f1 varchar(64),
|
||||
f2 varchar(1024),
|
||||
KEY (f1,f2(255))
|
||||
);
|
||||
INSERT INTO t2 VALUES ('foo','baz','qux'),('bar','baz','qux');
|
||||
set optimizer_use_condition_selectivity=2;
|
||||
explain
|
||||
select * from t1,t2 where t1.id = t2.t1_id and t2.f2='qux' and t2.f1='baz';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ref f1 f1 325 const,const 1 Using index condition; Using where
|
||||
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 122 test.t2.t1_id 1
|
||||
select * from t1,t2 where t1.id = t2.t1_id and t2.f2='qux' and t2.f1='baz';
|
||||
id dt t1_id f1 f2
|
||||
foo 2011-04-12 05:18:08 foo baz qux
|
||||
bar 2013-09-19 11:37:03 bar baz qux
|
||||
drop table t1,t2;
|
||||
#
|
||||
# MDEV-5985: EITS: selectivity estimates look illogical for join and non-key equalities
|
||||
#
|
||||
create table t0(a int);
|
||||
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||
create table t1(a int);
|
||||
insert into t1 select ta.a + tb.a* 10 + tc.a * 100 from t0 ta, t0 tb, t0 tc;
|
||||
create table t2 as select * from t1;
|
||||
set histogram_size=100;
|
||||
set use_stat_tables='preferably';
|
||||
set optimizer_use_condition_selectivity=4;
|
||||
analyze table t1 persistent for all;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status Engine-independent statistics collected
|
||||
test.t1 analyze status OK
|
||||
analyze table t2 persistent for all;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t2 analyze status Engine-independent statistics collected
|
||||
test.t2 analyze status OK
|
||||
# Filtered will be 4.95, 9.90
|
||||
explain extended select * from t1 ta, t2 tb where ta.a < 40 and tb.a < 100;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE ta ALL NULL NULL NULL NULL 1000 4.95 Using where
|
||||
1 SIMPLE tb ALL NULL NULL NULL NULL 1000 9.90 Using where; Using join buffer (flat, BNL join)
|
||||
Warnings:
|
||||
Note 1003 select `test`.`ta`.`a` AS `a`,`test`.`tb`.`a` AS `a` from `test`.`t1` `ta` join `test`.`t2` `tb` where ((`test`.`ta`.`a` < 40) and (`test`.`tb`.`a` < 100))
|
||||
# Here, tb.filtered should not become 100%:
|
||||
explain extended select * from t1 ta, t2 tb where ta.a < 40 and tb.a < 100 and tb.a=ta.a;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE ta ALL NULL NULL NULL NULL 1000 4.95 Using where
|
||||
1 SIMPLE tb ALL NULL NULL NULL NULL 1000 4.95 Using where; Using join buffer (flat, BNL join)
|
||||
Warnings:
|
||||
Note 1003 select `test`.`ta`.`a` AS `a`,`test`.`tb`.`a` AS `a` from `test`.`t1` `ta` join `test`.`t2` `tb` where ((`test`.`tb`.`a` = `test`.`ta`.`a`) and (`test`.`ta`.`a` < 40) and (`test`.`ta`.`a` < 100))
|
||||
drop table t0,t1,t2;
|
||||
#
|
||||
# End of the test file
|
||||
#
|
||||
set use_stat_tables= @save_use_stat_tables;
|
||||
|
@@ -337,11 +337,11 @@ patient_uq clinic_uq
|
||||
2 2
|
||||
explain extended select * from t6 where exists (select * from t7 where uq = clinic_uq);
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY t6 ALL NULL NULL NULL NULL 4 100.00 Using where
|
||||
2 DEPENDENT SUBQUERY t7 eq_ref PRIMARY PRIMARY 4 test.t6.clinic_uq 1 100.00 Using index
|
||||
1 PRIMARY t7 index PRIMARY PRIMARY 4 NULL 2 100.00 Using index
|
||||
1 PRIMARY t6 ALL i1 NULL NULL NULL 4 75.00 Using where; Using join buffer (flat, BNL join)
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.t6.clinic_uq' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select `test`.`t6`.`patient_uq` AS `patient_uq`,`test`.`t6`.`clinic_uq` AS `clinic_uq` from `test`.`t6` where <expr_cache><`test`.`t6`.`clinic_uq`>(exists(select 1 from `test`.`t7` where (`test`.`t7`.`uq` = `test`.`t6`.`clinic_uq`)))
|
||||
Note 1003 select `test`.`t6`.`patient_uq` AS `patient_uq`,`test`.`t6`.`clinic_uq` AS `clinic_uq` from `test`.`t7` join `test`.`t6` where (`test`.`t6`.`clinic_uq` = `test`.`t7`.`uq`)
|
||||
select * from t1 where a= (select a from t2,t4 where t2.b=t4.b);
|
||||
ERROR 23000: Column 'a' in field list is ambiguous
|
||||
drop table t1,t2,t3;
|
||||
@@ -1887,7 +1887,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
2 DEPENDENT SUBQUERY t1 eq_ref PRIMARY PRIMARY 4 test.tt.id 1 100.00 Using where; Using index
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.tt.id' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select `test`.`tt`.`id` AS `id`,`test`.`tt`.`text` AS `text` from `test`.`t1` `tt` where (not(<expr_cache><`test`.`tt`.`id`>(exists(select `test`.`t1`.`id` from `test`.`t1` where ((`test`.`t1`.`id` < 8) and (`test`.`t1`.`id` = `test`.`tt`.`id`)) having (`test`.`t1`.`id` is not null)))))
|
||||
Note 1003 select `test`.`tt`.`id` AS `id`,`test`.`tt`.`text` AS `text` from `test`.`t1` `tt` where (not(<in_optimizer>(1,<expr_cache><`test`.`tt`.`id`>(exists(select `test`.`t1`.`id` from `test`.`t1` where ((`test`.`t1`.`id` < 8) and (`test`.`t1`.`id` = `test`.`tt`.`id`)) having (`test`.`t1`.`id` is not null))))))
|
||||
insert into t1 (id, text) values (1000, 'text1000'), (1001, 'text1001');
|
||||
create table t2 (id int not null, text varchar(20) not null default '', primary key (id));
|
||||
insert into t2 (id, text) values (1, 'text1'), (2, 'text2'), (3, 'text3'), (4, 'text4'), (5, 'text5'), (6, 'text6'), (7, 'text7'), (8, 'text8'), (9, 'text9'), (10, 'text10'), (11, 'text1'), (12, 'text2'), (13, 'text3'), (14, 'text4'), (15, 'text5'), (16, 'text6'), (17, 'text7'), (18, 'text8'), (19, 'text9'), (20, 'text10'),(21, 'text1'), (22, 'text2'), (23, 'text3'), (24, 'text4'), (25, 'text5'), (26, 'text6'), (27, 'text7'), (28, 'text8'), (29, 'text9'), (30, 'text10'), (31, 'text1'), (32, 'text2'), (33, 'text3'), (34, 'text4'), (35, 'text5'), (36, 'text6'), (37, 'text7'), (38, 'text8'), (39, 'text9'), (40, 'text10'), (41, 'text1'), (42, 'text2'), (43, 'text3'), (44, 'text4'), (45, 'text5'), (46, 'text6'), (47, 'text7'), (48, 'text8'), (49, 'text9'), (50, 'text10');
|
||||
@@ -2419,11 +2419,12 @@ a b
|
||||
3 4
|
||||
explain extended select * from t1 up where exists (select * from t1 where t1.a=up.a);
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY up ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
1 PRIMARY up ALL NULL NULL NULL NULL 2 100.00
|
||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 100.00
|
||||
2 MATERIALIZED t1 ALL NULL NULL NULL NULL 2 100.00
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.up.a' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select `test`.`up`.`a` AS `a`,`test`.`up`.`b` AS `b` from `test`.`t1` `up` where <expr_cache><`test`.`up`.`a`>(exists(select 1 from `test`.`t1` where (`test`.`t1`.`a` = `test`.`up`.`a`)))
|
||||
Note 1003 select `test`.`up`.`a` AS `a`,`test`.`up`.`b` AS `b` from `test`.`t1` `up` semi join (`test`.`t1`) where 1
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (t1_a int);
|
||||
INSERT INTO t1 VALUES (1);
|
||||
@@ -4428,11 +4429,12 @@ SELECT 2 FROM t1 WHERE EXISTS ((SELECT 1 FROM t2 WHERE t1.a=t2.a));
|
||||
EXPLAIN EXTENDED
|
||||
SELECT 2 FROM t1 WHERE EXISTS ((SELECT 1 FROM t2 WHERE t1.a=t2.a));
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 100.00
|
||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 100.00
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.t1.a' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select 2 AS `2` from `test`.`t1` where <expr_cache><`test`.`t1`.`a`>(exists(select 1 from `test`.`t2` where (`test`.`t1`.`a` = `test`.`t2`.`a`)))
|
||||
Note 1003 select 2 AS `2` from `test`.`t1` semi join (`test`.`t2`) where 1
|
||||
EXPLAIN EXTENDED
|
||||
SELECT 2 FROM t1 WHERE EXISTS ((SELECT 1 FROM t2 WHERE t1.a=t2.a) UNION
|
||||
(SELECT 1 FROM t2 WHERE t1.a = t2.a));
|
||||
@@ -5670,8 +5672,9 @@ EXPLAIN
|
||||
SELECT * FROM t1
|
||||
WHERE EXISTS (SELECT a FROM t2 USE INDEX() WHERE t2.a = t1.a);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where
|
||||
2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 3 Using where
|
||||
1 PRIMARY <subquery2> ALL distinct_key NULL NULL NULL 3
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join)
|
||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3
|
||||
SELECT * FROM t1
|
||||
WHERE EXISTS (SELECT a FROM t2 WHERE t2.a = t1.a);
|
||||
a
|
||||
@@ -5680,8 +5683,9 @@ EXPLAIN
|
||||
SELECT * FROM t1
|
||||
WHERE EXISTS (SELECT a FROM t2 WHERE t2.a = t1.a);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where
|
||||
2 DEPENDENT SUBQUERY t2 ref idx idx 5 test.t1.a 2 Using index
|
||||
1 PRIMARY <subquery2> ALL distinct_key NULL NULL NULL 3
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join)
|
||||
2 MATERIALIZED t2 index idx idx 5 NULL 3 Using index
|
||||
DROP TABLE t1,t2;
|
||||
#
|
||||
# BUG#752992: Wrong results for a subquery with 'semijoin=on'
|
||||
|
@@ -227,7 +227,7 @@ where t2.c in (select c from t3 where t3.c > t1.b) and
|
||||
t2.c > 'b1' )
|
||||
group by a1,a2,b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 range NULL idx_t1_1 147 NULL 17 Using where; Using index for group-by
|
||||
1 PRIMARY t1 index NULL idx_t1_1 163 NULL 128 Using where; Using index
|
||||
2 DEPENDENT SUBQUERY t2 index NULL idx_t2_1 163 NULL 164 Using where; Using index
|
||||
2 DEPENDENT SUBQUERY t3 index NULL idx_t3_1 10 NULL 192 Using where; Using index; FirstMatch(t2); Using join buffer (flat, BNL join)
|
||||
select a1,a2,b,c,min(c), max(c) from t1
|
||||
@@ -236,22 +236,22 @@ where t2.c in (select c from t3 where t3.c > t1.b) and
|
||||
t2.c > 'b1' )
|
||||
group by a1,a2,b;
|
||||
a1 a2 b c min(c) max(c)
|
||||
a a a d111 a111 d111
|
||||
a a b h112 e112 h112
|
||||
a b a l121 i121 l121
|
||||
a b b p122 m122 p122
|
||||
b a a d211 a211 d211
|
||||
b a b h212 e212 h212
|
||||
b b a l221 i221 l221
|
||||
b b b p222 m222 p222
|
||||
c a a d311 a311 d311
|
||||
c a b h312 e312 h312
|
||||
c b a l321 i321 l321
|
||||
c b b p322 m322 p322
|
||||
d a a d411 a411 d411
|
||||
d a b h412 e412 h412
|
||||
d b a l421 i421 l421
|
||||
d b b p422 m422 p422
|
||||
a a a a111 a111 d111
|
||||
a a b e112 e112 h112
|
||||
a b a i121 i121 l121
|
||||
a b b m122 m122 p122
|
||||
b a a a211 a211 d211
|
||||
b a b e212 e212 h212
|
||||
b b a i221 i221 l221
|
||||
b b b m222 m222 p222
|
||||
c a a a311 a311 d311
|
||||
c a b e312 e312 h312
|
||||
c b a i321 i321 l321
|
||||
c b b m322 m322 p322
|
||||
d a a a411 a411 d411
|
||||
d a b e412 e412 h412
|
||||
d b a i421 i421 l421
|
||||
d b b m422 m422 p422
|
||||
explain select a1,a2,b,c,min(c), max(c) from t1
|
||||
where exists ( select * from t2
|
||||
where t2.c in (select c from t3 where t3.c > t1.c) and
|
||||
|
@@ -231,7 +231,7 @@ where t2.c in (select c from t3 where t3.c > t1.b) and
|
||||
t2.c > 'b1' )
|
||||
group by a1,a2,b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 range NULL idx_t1_1 147 NULL 17 Using where; Using index for group-by
|
||||
1 PRIMARY t1 index NULL idx_t1_1 163 NULL 128 Using where; Using index
|
||||
2 DEPENDENT SUBQUERY t2 index NULL idx_t2_1 163 NULL 164 Using where; Using index
|
||||
3 DEPENDENT SUBQUERY t3 index NULL idx_t3_1 10 NULL 192 Using where; Using index
|
||||
select a1,a2,b,c,min(c), max(c) from t1
|
||||
@@ -240,22 +240,22 @@ where t2.c in (select c from t3 where t3.c > t1.b) and
|
||||
t2.c > 'b1' )
|
||||
group by a1,a2,b;
|
||||
a1 a2 b c min(c) max(c)
|
||||
a a a d111 a111 d111
|
||||
a a b h112 e112 h112
|
||||
a b a l121 i121 l121
|
||||
a b b p122 m122 p122
|
||||
b a a d211 a211 d211
|
||||
b a b h212 e212 h212
|
||||
b b a l221 i221 l221
|
||||
b b b p222 m222 p222
|
||||
c a a d311 a311 d311
|
||||
c a b h312 e312 h312
|
||||
c b a l321 i321 l321
|
||||
c b b p322 m322 p322
|
||||
d a a d411 a411 d411
|
||||
d a b h412 e412 h412
|
||||
d b a l421 i421 l421
|
||||
d b b p422 m422 p422
|
||||
a a a a111 a111 d111
|
||||
a a b e112 e112 h112
|
||||
a b a i121 i121 l121
|
||||
a b b m122 m122 p122
|
||||
b a a a211 a211 d211
|
||||
b a b e212 e212 h212
|
||||
b b a i221 i221 l221
|
||||
b b b m222 m222 p222
|
||||
c a a a311 a311 d311
|
||||
c a b e312 e312 h312
|
||||
c b a i321 i321 l321
|
||||
c b b m322 m322 p322
|
||||
d a a a411 a411 d411
|
||||
d a b e412 e412 h412
|
||||
d b a i421 i421 l421
|
||||
d b b m422 m422 p422
|
||||
explain select a1,a2,b,c,min(c), max(c) from t1
|
||||
where exists ( select * from t2
|
||||
where t2.c in (select c from t3 where t3.c > t1.c) and
|
||||
|
@@ -1,7 +1,7 @@
|
||||
select @@optimizer_switch like '%exists_to_in=on%';
|
||||
@@optimizer_switch like '%exists_to_in=on%'
|
||||
select @@optimizer_switch like '%exists_to_in=off%';
|
||||
@@optimizer_switch like '%exists_to_in=off%'
|
||||
0
|
||||
set optimizer_switch='exists_to_in=on';
|
||||
set optimizer_switch='exists_to_in=off';
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t11,t12;
|
||||
drop view if exists v2;
|
||||
set @subselect_tmp=@@optimizer_switch;
|
||||
@@ -341,11 +341,11 @@ patient_uq clinic_uq
|
||||
2 2
|
||||
explain extended select * from t6 where exists (select * from t7 where uq = clinic_uq);
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY t7 index PRIMARY PRIMARY 4 NULL 2 100.00 Using index
|
||||
1 PRIMARY t6 ALL i1 NULL NULL NULL 4 75.00 Using where; Using join buffer (flat, BNL join)
|
||||
1 PRIMARY t6 ALL NULL NULL NULL NULL 4 100.00 Using where
|
||||
2 DEPENDENT SUBQUERY t7 eq_ref PRIMARY PRIMARY 4 test.t6.clinic_uq 1 100.00 Using index
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.t6.clinic_uq' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select `test`.`t6`.`patient_uq` AS `patient_uq`,`test`.`t6`.`clinic_uq` AS `clinic_uq` from `test`.`t7` join `test`.`t6` where (`test`.`t6`.`clinic_uq` = `test`.`t7`.`uq`)
|
||||
Note 1003 select `test`.`t6`.`patient_uq` AS `patient_uq`,`test`.`t6`.`clinic_uq` AS `clinic_uq` from `test`.`t6` where <expr_cache><`test`.`t6`.`clinic_uq`>(exists(select 1 from `test`.`t7` where (`test`.`t7`.`uq` = `test`.`t6`.`clinic_uq`)))
|
||||
select * from t1 where a= (select a from t2,t4 where t2.b=t4.b);
|
||||
ERROR 23000: Column 'a' in field list is ambiguous
|
||||
drop table t1,t2,t3;
|
||||
@@ -1891,7 +1891,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
2 DEPENDENT SUBQUERY t1 eq_ref PRIMARY PRIMARY 4 test.tt.id 1 100.00 Using where; Using index
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.tt.id' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select `test`.`tt`.`id` AS `id`,`test`.`tt`.`text` AS `text` from `test`.`t1` `tt` where (not(<in_optimizer>(1,<expr_cache><`test`.`tt`.`id`>(exists(select `test`.`t1`.`id` from `test`.`t1` where ((`test`.`t1`.`id` < 8) and (`test`.`t1`.`id` = `test`.`tt`.`id`)) having (`test`.`t1`.`id` is not null))))))
|
||||
Note 1003 select `test`.`tt`.`id` AS `id`,`test`.`tt`.`text` AS `text` from `test`.`t1` `tt` where (not(<expr_cache><`test`.`tt`.`id`>(exists(select `test`.`t1`.`id` from `test`.`t1` where ((`test`.`t1`.`id` < 8) and (`test`.`t1`.`id` = `test`.`tt`.`id`)) having (`test`.`t1`.`id` is not null)))))
|
||||
insert into t1 (id, text) values (1000, 'text1000'), (1001, 'text1001');
|
||||
create table t2 (id int not null, text varchar(20) not null default '', primary key (id));
|
||||
insert into t2 (id, text) values (1, 'text1'), (2, 'text2'), (3, 'text3'), (4, 'text4'), (5, 'text5'), (6, 'text6'), (7, 'text7'), (8, 'text8'), (9, 'text9'), (10, 'text10'), (11, 'text1'), (12, 'text2'), (13, 'text3'), (14, 'text4'), (15, 'text5'), (16, 'text6'), (17, 'text7'), (18, 'text8'), (19, 'text9'), (20, 'text10'),(21, 'text1'), (22, 'text2'), (23, 'text3'), (24, 'text4'), (25, 'text5'), (26, 'text6'), (27, 'text7'), (28, 'text8'), (29, 'text9'), (30, 'text10'), (31, 'text1'), (32, 'text2'), (33, 'text3'), (34, 'text4'), (35, 'text5'), (36, 'text6'), (37, 'text7'), (38, 'text8'), (39, 'text9'), (40, 'text10'), (41, 'text1'), (42, 'text2'), (43, 'text3'), (44, 'text4'), (45, 'text5'), (46, 'text6'), (47, 'text7'), (48, 'text8'), (49, 'text9'), (50, 'text10');
|
||||
@@ -2423,12 +2423,11 @@ a b
|
||||
3 4
|
||||
explain extended select * from t1 up where exists (select * from t1 where t1.a=up.a);
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY up ALL NULL NULL NULL NULL 2 100.00
|
||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 100.00
|
||||
2 MATERIALIZED t1 ALL NULL NULL NULL NULL 2 100.00
|
||||
1 PRIMARY up ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.up.a' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select `test`.`up`.`a` AS `a`,`test`.`up`.`b` AS `b` from `test`.`t1` `up` semi join (`test`.`t1`) where 1
|
||||
Note 1003 select `test`.`up`.`a` AS `a`,`test`.`up`.`b` AS `b` from `test`.`t1` `up` where <expr_cache><`test`.`up`.`a`>(exists(select 1 from `test`.`t1` where (`test`.`t1`.`a` = `test`.`up`.`a`)))
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (t1_a int);
|
||||
INSERT INTO t1 VALUES (1);
|
||||
@@ -4433,12 +4432,11 @@ SELECT 2 FROM t1 WHERE EXISTS ((SELECT 1 FROM t2 WHERE t1.a=t2.a));
|
||||
EXPLAIN EXTENDED
|
||||
SELECT 2 FROM t1 WHERE EXISTS ((SELECT 1 FROM t2 WHERE t1.a=t2.a));
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 100.00
|
||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 100.00
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.t1.a' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select 2 AS `2` from `test`.`t1` semi join (`test`.`t2`) where 1
|
||||
Note 1003 select 2 AS `2` from `test`.`t1` where <expr_cache><`test`.`t1`.`a`>(exists(select 1 from `test`.`t2` where (`test`.`t1`.`a` = `test`.`t2`.`a`)))
|
||||
EXPLAIN EXTENDED
|
||||
SELECT 2 FROM t1 WHERE EXISTS ((SELECT 1 FROM t2 WHERE t1.a=t2.a) UNION
|
||||
(SELECT 1 FROM t2 WHERE t1.a = t2.a));
|
||||
@@ -5676,9 +5674,8 @@ EXPLAIN
|
||||
SELECT * FROM t1
|
||||
WHERE EXISTS (SELECT a FROM t2 USE INDEX() WHERE t2.a = t1.a);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY <subquery2> ALL distinct_key NULL NULL NULL 3
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join)
|
||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where
|
||||
2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 3 Using where
|
||||
SELECT * FROM t1
|
||||
WHERE EXISTS (SELECT a FROM t2 WHERE t2.a = t1.a);
|
||||
a
|
||||
@@ -5687,9 +5684,8 @@ EXPLAIN
|
||||
SELECT * FROM t1
|
||||
WHERE EXISTS (SELECT a FROM t2 WHERE t2.a = t1.a);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY <subquery2> ALL distinct_key NULL NULL NULL 3
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join)
|
||||
2 MATERIALIZED t2 index idx idx 5 NULL 3 Using index
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where
|
||||
2 DEPENDENT SUBQUERY t2 ref idx idx 5 test.t1.a 2 Using index
|
||||
DROP TABLE t1,t2;
|
||||
#
|
||||
# BUG#752992: Wrong results for a subquery with 'semijoin=on'
|
||||
@@ -7024,6 +7020,6 @@ exists(select 1 from t1 group by `c` in (select `c` from t1))
|
||||
0
|
||||
drop table t1;
|
||||
set optimizer_switch=default;
|
||||
select @@optimizer_switch like '%exists_to_in=on%';
|
||||
@@optimizer_switch like '%exists_to_in=on%'
|
||||
select @@optimizer_switch like '%exists_to_in=off%';
|
||||
@@optimizer_switch like '%exists_to_in=off%'
|
||||
0
|
@@ -344,11 +344,11 @@ patient_uq clinic_uq
|
||||
2 2
|
||||
explain extended select * from t6 where exists (select * from t7 where uq = clinic_uq);
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY t6 ALL NULL NULL NULL NULL 4 100.00 Using where
|
||||
2 DEPENDENT SUBQUERY t7 eq_ref PRIMARY PRIMARY 4 test.t6.clinic_uq 1 100.00 Using index
|
||||
1 PRIMARY t7 index PRIMARY PRIMARY 4 NULL 2 100.00 Using index
|
||||
1 PRIMARY t6 ALL i1 NULL NULL NULL 4 75.00 Using where; Using join buffer (flat, BNL join)
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.t6.clinic_uq' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select `test`.`t6`.`patient_uq` AS `patient_uq`,`test`.`t6`.`clinic_uq` AS `clinic_uq` from `test`.`t6` where <expr_cache><`test`.`t6`.`clinic_uq`>(exists(select 1 from `test`.`t7` where (`test`.`t7`.`uq` = `test`.`t6`.`clinic_uq`)))
|
||||
Note 1003 select `test`.`t6`.`patient_uq` AS `patient_uq`,`test`.`t6`.`clinic_uq` AS `clinic_uq` from `test`.`t7` join `test`.`t6` where (`test`.`t6`.`clinic_uq` = `test`.`t7`.`uq`)
|
||||
select * from t1 where a= (select a from t2,t4 where t2.b=t4.b);
|
||||
ERROR 23000: Column 'a' in field list is ambiguous
|
||||
drop table t1,t2,t3;
|
||||
@@ -1894,7 +1894,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
2 DEPENDENT SUBQUERY t1 eq_ref PRIMARY PRIMARY 4 test.tt.id 1 100.00 Using where; Using index
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.tt.id' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select `test`.`tt`.`id` AS `id`,`test`.`tt`.`text` AS `text` from `test`.`t1` `tt` where (not(<expr_cache><`test`.`tt`.`id`>(exists(select `test`.`t1`.`id` from `test`.`t1` where ((`test`.`t1`.`id` < 8) and (`test`.`t1`.`id` = `test`.`tt`.`id`)) having (`test`.`t1`.`id` is not null)))))
|
||||
Note 1003 select `test`.`tt`.`id` AS `id`,`test`.`tt`.`text` AS `text` from `test`.`t1` `tt` where (not(<in_optimizer>(1,<expr_cache><`test`.`tt`.`id`>(exists(select `test`.`t1`.`id` from `test`.`t1` where ((`test`.`t1`.`id` < 8) and (`test`.`t1`.`id` = `test`.`tt`.`id`)) having (`test`.`t1`.`id` is not null))))))
|
||||
insert into t1 (id, text) values (1000, 'text1000'), (1001, 'text1001');
|
||||
create table t2 (id int not null, text varchar(20) not null default '', primary key (id));
|
||||
insert into t2 (id, text) values (1, 'text1'), (2, 'text2'), (3, 'text3'), (4, 'text4'), (5, 'text5'), (6, 'text6'), (7, 'text7'), (8, 'text8'), (9, 'text9'), (10, 'text10'), (11, 'text1'), (12, 'text2'), (13, 'text3'), (14, 'text4'), (15, 'text5'), (16, 'text6'), (17, 'text7'), (18, 'text8'), (19, 'text9'), (20, 'text10'),(21, 'text1'), (22, 'text2'), (23, 'text3'), (24, 'text4'), (25, 'text5'), (26, 'text6'), (27, 'text7'), (28, 'text8'), (29, 'text9'), (30, 'text10'), (31, 'text1'), (32, 'text2'), (33, 'text3'), (34, 'text4'), (35, 'text5'), (36, 'text6'), (37, 'text7'), (38, 'text8'), (39, 'text9'), (40, 'text10'), (41, 'text1'), (42, 'text2'), (43, 'text3'), (44, 'text4'), (45, 'text5'), (46, 'text6'), (47, 'text7'), (48, 'text8'), (49, 'text9'), (50, 'text10');
|
||||
@@ -2426,11 +2426,11 @@ a b
|
||||
3 4
|
||||
explain extended select * from t1 up where exists (select * from t1 where t1.a=up.a);
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY up ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
1 PRIMARY up ALL NULL NULL NULL NULL 2 100.00
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Using where; FirstMatch(up); Using join buffer (flat, BNL join)
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.up.a' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select `test`.`up`.`a` AS `a`,`test`.`up`.`b` AS `b` from `test`.`t1` `up` where <expr_cache><`test`.`up`.`a`>(exists(select 1 from `test`.`t1` where (`test`.`t1`.`a` = `test`.`up`.`a`)))
|
||||
Note 1003 select `test`.`up`.`a` AS `a`,`test`.`up`.`b` AS `b` from `test`.`t1` `up` semi join (`test`.`t1`) where (`test`.`t1`.`a` = `test`.`up`.`a`)
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (t1_a int);
|
||||
INSERT INTO t1 VALUES (1);
|
||||
@@ -4432,11 +4432,11 @@ SELECT 2 FROM t1 WHERE EXISTS ((SELECT 1 FROM t2 WHERE t1.a=t2.a));
|
||||
EXPLAIN EXTENDED
|
||||
SELECT 2 FROM t1 WHERE EXISTS ((SELECT 1 FROM t2 WHERE t1.a=t2.a));
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Using where; FirstMatch(t1); Using join buffer (flat, BNL join)
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.t1.a' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select 2 AS `2` from `test`.`t1` where <expr_cache><`test`.`t1`.`a`>(exists(select 1 from `test`.`t2` where (`test`.`t1`.`a` = `test`.`t2`.`a`)))
|
||||
Note 1003 select 2 AS `2` from `test`.`t1` semi join (`test`.`t2`) where (`test`.`t2`.`a` = `test`.`t1`.`a`)
|
||||
EXPLAIN EXTENDED
|
||||
SELECT 2 FROM t1 WHERE EXISTS ((SELECT 1 FROM t2 WHERE t1.a=t2.a) UNION
|
||||
(SELECT 1 FROM t2 WHERE t1.a = t2.a));
|
||||
@@ -5671,8 +5671,8 @@ EXPLAIN
|
||||
SELECT * FROM t1
|
||||
WHERE EXISTS (SELECT a FROM t2 USE INDEX() WHERE t2.a = t1.a);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where
|
||||
2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 3 Using where
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 4
|
||||
1 PRIMARY t2 ALL NULL NULL NULL NULL 3 Using where; FirstMatch(t1); Using join buffer (flat, BNL join)
|
||||
SELECT * FROM t1
|
||||
WHERE EXISTS (SELECT a FROM t2 WHERE t2.a = t1.a);
|
||||
a
|
||||
@@ -5681,8 +5681,8 @@ EXPLAIN
|
||||
SELECT * FROM t1
|
||||
WHERE EXISTS (SELECT a FROM t2 WHERE t2.a = t1.a);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where
|
||||
2 DEPENDENT SUBQUERY t2 ref idx idx 5 test.t1.a 2 Using index
|
||||
1 PRIMARY t2 index idx idx 5 NULL 3 Using index; LooseScan
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join)
|
||||
DROP TABLE t1,t2;
|
||||
#
|
||||
# BUG#752992: Wrong results for a subquery with 'semijoin=on'
|
||||
|
@@ -341,10 +341,10 @@ patient_uq clinic_uq
|
||||
explain extended select * from t6 where exists (select * from t7 where uq = clinic_uq);
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY t6 ALL NULL NULL NULL NULL 4 100.00 Using where
|
||||
2 DEPENDENT SUBQUERY t7 eq_ref PRIMARY PRIMARY 4 test.t6.clinic_uq 1 100.00 Using index
|
||||
2 DEPENDENT SUBQUERY t7 unique_subquery PRIMARY PRIMARY 4 func 1 100.00 Using index
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.t6.clinic_uq' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select `test`.`t6`.`patient_uq` AS `patient_uq`,`test`.`t6`.`clinic_uq` AS `clinic_uq` from `test`.`t6` where exists(select 1 from `test`.`t7` where (`test`.`t7`.`uq` = `test`.`t6`.`clinic_uq`))
|
||||
Note 1003 select `test`.`t6`.`patient_uq` AS `patient_uq`,`test`.`t6`.`clinic_uq` AS `clinic_uq` from `test`.`t6` where <in_optimizer>(`test`.`t6`.`clinic_uq`,<exists>(<primary_index_lookup>(<cache>(`test`.`t6`.`clinic_uq`) in t7 on PRIMARY)))
|
||||
select * from t1 where a= (select a from t2,t4 where t2.b=t4.b);
|
||||
ERROR 23000: Column 'a' in field list is ambiguous
|
||||
drop table t1,t2,t3;
|
||||
@@ -1890,7 +1890,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
2 DEPENDENT SUBQUERY t1 eq_ref PRIMARY PRIMARY 4 test.tt.id 1 100.00 Using where; Using index
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.tt.id' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select `test`.`tt`.`id` AS `id`,`test`.`tt`.`text` AS `text` from `test`.`t1` `tt` where (not(exists(select `test`.`t1`.`id` from `test`.`t1` where ((`test`.`t1`.`id` < 8) and (`test`.`t1`.`id` = `test`.`tt`.`id`)) having (`test`.`t1`.`id` is not null))))
|
||||
Note 1003 select `test`.`tt`.`id` AS `id`,`test`.`tt`.`text` AS `text` from `test`.`t1` `tt` where (not(<in_optimizer>(1,exists(select `test`.`t1`.`id` from `test`.`t1` where ((`test`.`t1`.`id` < 8) and (`test`.`t1`.`id` = `test`.`tt`.`id`)) having (`test`.`t1`.`id` is not null)))))
|
||||
insert into t1 (id, text) values (1000, 'text1000'), (1001, 'text1001');
|
||||
create table t2 (id int not null, text varchar(20) not null default '', primary key (id));
|
||||
insert into t2 (id, text) values (1, 'text1'), (2, 'text2'), (3, 'text3'), (4, 'text4'), (5, 'text5'), (6, 'text6'), (7, 'text7'), (8, 'text8'), (9, 'text9'), (10, 'text10'), (11, 'text1'), (12, 'text2'), (13, 'text3'), (14, 'text4'), (15, 'text5'), (16, 'text6'), (17, 'text7'), (18, 'text8'), (19, 'text9'), (20, 'text10'),(21, 'text1'), (22, 'text2'), (23, 'text3'), (24, 'text4'), (25, 'text5'), (26, 'text6'), (27, 'text7'), (28, 'text8'), (29, 'text9'), (30, 'text10'), (31, 'text1'), (32, 'text2'), (33, 'text3'), (34, 'text4'), (35, 'text5'), (36, 'text6'), (37, 'text7'), (38, 'text8'), (39, 'text9'), (40, 'text10'), (41, 'text1'), (42, 'text2'), (43, 'text3'), (44, 'text4'), (45, 'text5'), (46, 'text6'), (47, 'text7'), (48, 'text8'), (49, 'text9'), (50, 'text10');
|
||||
@@ -2426,7 +2426,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.up.a' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select `test`.`up`.`a` AS `a`,`test`.`up`.`b` AS `b` from `test`.`t1` `up` where exists(select 1 from `test`.`t1` where (`test`.`t1`.`a` = `test`.`up`.`a`))
|
||||
Note 1003 select `test`.`up`.`a` AS `a`,`test`.`up`.`b` AS `b` from `test`.`t1` `up` where <in_optimizer>(`test`.`up`.`a`,<exists>(select `test`.`t1`.`a` from `test`.`t1` where (<cache>(`test`.`up`.`a`) = `test`.`t1`.`a`)))
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (t1_a int);
|
||||
INSERT INTO t1 VALUES (1);
|
||||
@@ -4432,7 +4432,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.t1.a' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select 2 AS `2` from `test`.`t1` where exists(select 1 from `test`.`t2` where (`test`.`t1`.`a` = `test`.`t2`.`a`))
|
||||
Note 1003 select 2 AS `2` from `test`.`t1` where <in_optimizer>(`test`.`t1`.`a`,<exists>(select `test`.`t2`.`a` from `test`.`t2` where (<cache>(`test`.`t1`.`a`) = `test`.`t2`.`a`)))
|
||||
EXPLAIN EXTENDED
|
||||
SELECT 2 FROM t1 WHERE EXISTS ((SELECT 1 FROM t2 WHERE t1.a=t2.a) UNION
|
||||
(SELECT 1 FROM t2 WHERE t1.a = t2.a));
|
||||
@@ -5678,7 +5678,7 @@ SELECT * FROM t1
|
||||
WHERE EXISTS (SELECT a FROM t2 WHERE t2.a = t1.a);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where
|
||||
2 DEPENDENT SUBQUERY t2 ref idx idx 5 test.t1.a 2 Using index
|
||||
2 DEPENDENT SUBQUERY t2 index_subquery idx idx 5 func 2 Using index
|
||||
DROP TABLE t1,t2;
|
||||
#
|
||||
# BUG#752992: Wrong results for a subquery with 'semijoin=on'
|
||||
|
@@ -343,11 +343,11 @@ patient_uq clinic_uq
|
||||
2 2
|
||||
explain extended select * from t6 where exists (select * from t7 where uq = clinic_uq);
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY t6 ALL NULL NULL NULL NULL 4 100.00 Using where
|
||||
2 DEPENDENT SUBQUERY t7 eq_ref PRIMARY PRIMARY 4 test.t6.clinic_uq 1 100.00 Using index
|
||||
1 PRIMARY t7 index PRIMARY PRIMARY 4 NULL 2 100.00 Using index
|
||||
1 PRIMARY t6 ALL i1 NULL NULL NULL 4 75.00 Using where; Using join buffer (flat, BNL join)
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.t6.clinic_uq' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select `test`.`t6`.`patient_uq` AS `patient_uq`,`test`.`t6`.`clinic_uq` AS `clinic_uq` from `test`.`t6` where exists(select 1 from `test`.`t7` where (`test`.`t7`.`uq` = `test`.`t6`.`clinic_uq`))
|
||||
Note 1003 select `test`.`t6`.`patient_uq` AS `patient_uq`,`test`.`t6`.`clinic_uq` AS `clinic_uq` from `test`.`t7` join `test`.`t6` where (`test`.`t6`.`clinic_uq` = `test`.`t7`.`uq`)
|
||||
select * from t1 where a= (select a from t2,t4 where t2.b=t4.b);
|
||||
ERROR 23000: Column 'a' in field list is ambiguous
|
||||
drop table t1,t2,t3;
|
||||
@@ -1893,7 +1893,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
2 DEPENDENT SUBQUERY t1 eq_ref PRIMARY PRIMARY 4 test.tt.id 1 100.00 Using where; Using index
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.tt.id' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select `test`.`tt`.`id` AS `id`,`test`.`tt`.`text` AS `text` from `test`.`t1` `tt` where (not(exists(select `test`.`t1`.`id` from `test`.`t1` where ((`test`.`t1`.`id` < 8) and (`test`.`t1`.`id` = `test`.`tt`.`id`)) having (`test`.`t1`.`id` is not null))))
|
||||
Note 1003 select `test`.`tt`.`id` AS `id`,`test`.`tt`.`text` AS `text` from `test`.`t1` `tt` where (not(<in_optimizer>(1,exists(select `test`.`t1`.`id` from `test`.`t1` where ((`test`.`t1`.`id` < 8) and (`test`.`t1`.`id` = `test`.`tt`.`id`)) having (`test`.`t1`.`id` is not null)))))
|
||||
insert into t1 (id, text) values (1000, 'text1000'), (1001, 'text1001');
|
||||
create table t2 (id int not null, text varchar(20) not null default '', primary key (id));
|
||||
insert into t2 (id, text) values (1, 'text1'), (2, 'text2'), (3, 'text3'), (4, 'text4'), (5, 'text5'), (6, 'text6'), (7, 'text7'), (8, 'text8'), (9, 'text9'), (10, 'text10'), (11, 'text1'), (12, 'text2'), (13, 'text3'), (14, 'text4'), (15, 'text5'), (16, 'text6'), (17, 'text7'), (18, 'text8'), (19, 'text9'), (20, 'text10'),(21, 'text1'), (22, 'text2'), (23, 'text3'), (24, 'text4'), (25, 'text5'), (26, 'text6'), (27, 'text7'), (28, 'text8'), (29, 'text9'), (30, 'text10'), (31, 'text1'), (32, 'text2'), (33, 'text3'), (34, 'text4'), (35, 'text5'), (36, 'text6'), (37, 'text7'), (38, 'text8'), (39, 'text9'), (40, 'text10'), (41, 'text1'), (42, 'text2'), (43, 'text3'), (44, 'text4'), (45, 'text5'), (46, 'text6'), (47, 'text7'), (48, 'text8'), (49, 'text9'), (50, 'text10');
|
||||
@@ -2425,11 +2425,12 @@ a b
|
||||
3 4
|
||||
explain extended select * from t1 up where exists (select * from t1 where t1.a=up.a);
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY up ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
1 PRIMARY up ALL NULL NULL NULL NULL 2 100.00
|
||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 100.00
|
||||
2 MATERIALIZED t1 ALL NULL NULL NULL NULL 2 100.00
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.up.a' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select `test`.`up`.`a` AS `a`,`test`.`up`.`b` AS `b` from `test`.`t1` `up` where exists(select 1 from `test`.`t1` where (`test`.`t1`.`a` = `test`.`up`.`a`))
|
||||
Note 1003 select `test`.`up`.`a` AS `a`,`test`.`up`.`b` AS `b` from `test`.`t1` `up` semi join (`test`.`t1`) where 1
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (t1_a int);
|
||||
INSERT INTO t1 VALUES (1);
|
||||
@@ -4434,11 +4435,12 @@ SELECT 2 FROM t1 WHERE EXISTS ((SELECT 1 FROM t2 WHERE t1.a=t2.a));
|
||||
EXPLAIN EXTENDED
|
||||
SELECT 2 FROM t1 WHERE EXISTS ((SELECT 1 FROM t2 WHERE t1.a=t2.a));
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 100.00
|
||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 100.00
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.t1.a' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select 2 AS `2` from `test`.`t1` where exists(select 1 from `test`.`t2` where (`test`.`t1`.`a` = `test`.`t2`.`a`))
|
||||
Note 1003 select 2 AS `2` from `test`.`t1` semi join (`test`.`t2`) where 1
|
||||
EXPLAIN EXTENDED
|
||||
SELECT 2 FROM t1 WHERE EXISTS ((SELECT 1 FROM t2 WHERE t1.a=t2.a) UNION
|
||||
(SELECT 1 FROM t2 WHERE t1.a = t2.a));
|
||||
@@ -5676,8 +5678,9 @@ EXPLAIN
|
||||
SELECT * FROM t1
|
||||
WHERE EXISTS (SELECT a FROM t2 USE INDEX() WHERE t2.a = t1.a);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where
|
||||
2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 3 Using where
|
||||
1 PRIMARY <subquery2> ALL distinct_key NULL NULL NULL 3
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join)
|
||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3
|
||||
SELECT * FROM t1
|
||||
WHERE EXISTS (SELECT a FROM t2 WHERE t2.a = t1.a);
|
||||
a
|
||||
@@ -5686,8 +5689,9 @@ EXPLAIN
|
||||
SELECT * FROM t1
|
||||
WHERE EXISTS (SELECT a FROM t2 WHERE t2.a = t1.a);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where
|
||||
2 DEPENDENT SUBQUERY t2 ref idx idx 5 test.t1.a 2 Using index
|
||||
1 PRIMARY <subquery2> ALL distinct_key NULL NULL NULL 3
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join)
|
||||
2 MATERIALIZED t2 index idx idx 5 NULL 3 Using index
|
||||
DROP TABLE t1,t2;
|
||||
#
|
||||
# BUG#752992: Wrong results for a subquery with 'semijoin=on'
|
||||
|
@@ -341,10 +341,10 @@ patient_uq clinic_uq
|
||||
explain extended select * from t6 where exists (select * from t7 where uq = clinic_uq);
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY t6 ALL NULL NULL NULL NULL 4 100.00 Using where
|
||||
2 DEPENDENT SUBQUERY t7 eq_ref PRIMARY PRIMARY 4 test.t6.clinic_uq 1 100.00 Using index
|
||||
2 MATERIALIZED t7 index PRIMARY PRIMARY 4 NULL 2 100.00 Using index
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.t6.clinic_uq' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select `test`.`t6`.`patient_uq` AS `patient_uq`,`test`.`t6`.`clinic_uq` AS `clinic_uq` from `test`.`t6` where <expr_cache><`test`.`t6`.`clinic_uq`>(exists(select 1 from `test`.`t7` where (`test`.`t7`.`uq` = `test`.`t6`.`clinic_uq`)))
|
||||
Note 1003 select `test`.`t6`.`patient_uq` AS `patient_uq`,`test`.`t6`.`clinic_uq` AS `clinic_uq` from `test`.`t6` where <expr_cache><`test`.`t6`.`clinic_uq`>(<in_optimizer>(`test`.`t6`.`clinic_uq`,`test`.`t6`.`clinic_uq` in ( <materialize> (select `test`.`t7`.`uq` from `test`.`t7` where 1 ), <primary_index_lookup>(`test`.`t6`.`clinic_uq` in <temporary table> on distinct_key where ((`test`.`t6`.`clinic_uq` = `<subquery2>`.`uq`))))))
|
||||
select * from t1 where a= (select a from t2,t4 where t2.b=t4.b);
|
||||
ERROR 23000: Column 'a' in field list is ambiguous
|
||||
drop table t1,t2,t3;
|
||||
@@ -1890,7 +1890,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
2 DEPENDENT SUBQUERY t1 eq_ref PRIMARY PRIMARY 4 test.tt.id 1 100.00 Using where; Using index
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.tt.id' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select `test`.`tt`.`id` AS `id`,`test`.`tt`.`text` AS `text` from `test`.`t1` `tt` where (not(<expr_cache><`test`.`tt`.`id`>(exists(select `test`.`t1`.`id` from `test`.`t1` where ((`test`.`t1`.`id` < 8) and (`test`.`t1`.`id` = `test`.`tt`.`id`)) having (`test`.`t1`.`id` is not null)))))
|
||||
Note 1003 select `test`.`tt`.`id` AS `id`,`test`.`tt`.`text` AS `text` from `test`.`t1` `tt` where (not(<in_optimizer>(1,<expr_cache><`test`.`tt`.`id`>(exists(select `test`.`t1`.`id` from `test`.`t1` where ((`test`.`t1`.`id` < 8) and (`test`.`t1`.`id` = `test`.`tt`.`id`)) having (`test`.`t1`.`id` is not null))))))
|
||||
insert into t1 (id, text) values (1000, 'text1000'), (1001, 'text1001');
|
||||
create table t2 (id int not null, text varchar(20) not null default '', primary key (id));
|
||||
insert into t2 (id, text) values (1, 'text1'), (2, 'text2'), (3, 'text3'), (4, 'text4'), (5, 'text5'), (6, 'text6'), (7, 'text7'), (8, 'text8'), (9, 'text9'), (10, 'text10'), (11, 'text1'), (12, 'text2'), (13, 'text3'), (14, 'text4'), (15, 'text5'), (16, 'text6'), (17, 'text7'), (18, 'text8'), (19, 'text9'), (20, 'text10'),(21, 'text1'), (22, 'text2'), (23, 'text3'), (24, 'text4'), (25, 'text5'), (26, 'text6'), (27, 'text7'), (28, 'text8'), (29, 'text9'), (30, 'text10'), (31, 'text1'), (32, 'text2'), (33, 'text3'), (34, 'text4'), (35, 'text5'), (36, 'text6'), (37, 'text7'), (38, 'text8'), (39, 'text9'), (40, 'text10'), (41, 'text1'), (42, 'text2'), (43, 'text3'), (44, 'text4'), (45, 'text5'), (46, 'text6'), (47, 'text7'), (48, 'text8'), (49, 'text9'), (50, 'text10');
|
||||
@@ -2423,10 +2423,10 @@ a b
|
||||
explain extended select * from t1 up where exists (select * from t1 where t1.a=up.a);
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY up ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
2 MATERIALIZED t1 ALL NULL NULL NULL NULL 2 100.00
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.up.a' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select `test`.`up`.`a` AS `a`,`test`.`up`.`b` AS `b` from `test`.`t1` `up` where <expr_cache><`test`.`up`.`a`>(exists(select 1 from `test`.`t1` where (`test`.`t1`.`a` = `test`.`up`.`a`)))
|
||||
Note 1003 select `test`.`up`.`a` AS `a`,`test`.`up`.`b` AS `b` from `test`.`t1` `up` where <expr_cache><`test`.`up`.`a`>(<in_optimizer>(`test`.`up`.`a`,`test`.`up`.`a` in ( <materialize> (select `test`.`t1`.`a` from `test`.`t1` where 1 ), <primary_index_lookup>(`test`.`up`.`a` in <temporary table> on distinct_key where ((`test`.`up`.`a` = `<subquery2>`.`a`))))))
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (t1_a int);
|
||||
INSERT INTO t1 VALUES (1);
|
||||
@@ -4429,10 +4429,10 @@ EXPLAIN EXTENDED
|
||||
SELECT 2 FROM t1 WHERE EXISTS ((SELECT 1 FROM t2 WHERE t1.a=t2.a));
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 100.00
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.t1.a' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select 2 AS `2` from `test`.`t1` where <expr_cache><`test`.`t1`.`a`>(exists(select 1 from `test`.`t2` where (`test`.`t1`.`a` = `test`.`t2`.`a`)))
|
||||
Note 1003 select 2 AS `2` from `test`.`t1` where <expr_cache><`test`.`t1`.`a`>(<in_optimizer>(`test`.`t1`.`a`,`test`.`t1`.`a` in ( <materialize> (select `test`.`t2`.`a` from `test`.`t2` where 1 ), <primary_index_lookup>(`test`.`t1`.`a` in <temporary table> on distinct_key where ((`test`.`t1`.`a` = `<subquery2>`.`a`))))))
|
||||
EXPLAIN EXTENDED
|
||||
SELECT 2 FROM t1 WHERE EXISTS ((SELECT 1 FROM t2 WHERE t1.a=t2.a) UNION
|
||||
(SELECT 1 FROM t2 WHERE t1.a = t2.a));
|
||||
@@ -5668,7 +5668,7 @@ SELECT * FROM t1
|
||||
WHERE EXISTS (SELECT a FROM t2 USE INDEX() WHERE t2.a = t1.a);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where
|
||||
2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 3 Using where
|
||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3
|
||||
SELECT * FROM t1
|
||||
WHERE EXISTS (SELECT a FROM t2 WHERE t2.a = t1.a);
|
||||
a
|
||||
@@ -5678,7 +5678,7 @@ SELECT * FROM t1
|
||||
WHERE EXISTS (SELECT a FROM t2 WHERE t2.a = t1.a);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where
|
||||
2 DEPENDENT SUBQUERY t2 ref idx idx 5 test.t1.a 2 Using index
|
||||
2 MATERIALIZED t2 index idx idx 5 NULL 3 Using index
|
||||
DROP TABLE t1,t2;
|
||||
#
|
||||
# BUG#752992: Wrong results for a subquery with 'semijoin=on'
|
||||
|
@@ -94,6 +94,7 @@ id select_type tABle type possiBle_keys key key_len ref rows filtered ExtrA
|
||||
2 MATERIALIZED t10 index PRIMARY PRIMARY 4 NULL 10 100.00 Using index
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t1`.`A` AS `A`,`test`.`t1`.`B` AS `B`,`test`.`t2`.`A` AS `A`,`test`.`t2`.`B` AS `B` from `test`.`t1` left join `test`.`t2` on(((`test`.`t2`.`A` = `test`.`t1`.`A`) And <in_optimizer>(`test`.`t1`.`A`,`test`.`t1`.`A` in ( <mAteriAlize> (select `test`.`t10`.`pk` from `test`.`t10` ), <primAry_index_lookup>(`test`.`t1`.`A` in <temporAry tABle> on distinct_key where ((`test`.`t1`.`A` = `<suBquery2>`.`pk`))))))) where 1
|
||||
set join_buffer_size=8*1024;
|
||||
we shouldn't flatten if we're going to get a join of > MAX_TABLES.
|
||||
explain select * from
|
||||
t1 s00, t1 s01, t1 s02, t1 s03, t1 s04,t1 s05,t1 s06,t1 s07,t1 s08,t1 s09,
|
||||
@@ -185,6 +186,7 @@ a b a b
|
||||
0 0 0 0
|
||||
1 1 1 1
|
||||
2 2 2 2
|
||||
set join_buffer_size=default;
|
||||
prepare s1 from
|
||||
' select * from
|
||||
t1 left join t2 on (t2.a= t1.a and t2.a in (select pk from t10))
|
||||
@@ -1007,8 +1009,8 @@ insert into t2 values ("1", "1", "sup", "0"), ("2", "1", "sup", "1"),
|
||||
("4", "1", "sup", "0");
|
||||
create table t3 (
|
||||
id int(11) not null default '0',
|
||||
preceeding_id int(11) not null default '0',
|
||||
primary key (id,preceeding_id)
|
||||
preceding_id int(11) not null default '0',
|
||||
primary key (id,preceding_id)
|
||||
);
|
||||
create table t4 (
|
||||
user_id varchar(50) not null,
|
||||
|
@@ -1148,5 +1148,35 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
1 PRIMARY t4 index NULL PRIMARY 59 NULL 2 Using where; Using index; End temporary
|
||||
DROP TABLE t1,t2,t3,t4;
|
||||
#
|
||||
# MDEV-6263: Wrong result when using IN subquery with order by
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
id int(11) NOT NULL,
|
||||
nombre varchar(255) NOT NULL,
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
INSERT INTO t1 (id, nombre) VALUES
|
||||
(1, 'row 1'),(2, 'row 2'),(3, 'row 3'),
|
||||
(4, 'row 4'),(5, 'row 5'),(6, 'row 6');
|
||||
CREATE TABLE t2 (
|
||||
id_algo int(11) NOT NULL,
|
||||
id_agente int(11) NOT NULL,
|
||||
PRIMARY KEY (id_algo,id_agente),
|
||||
KEY another_data (id_agente)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
INSERT INTO t2 (id_algo, id_agente) VALUES
|
||||
(1, 1),(1, 2),(2, 1),(2, 2),(2, 3),(3, 1);
|
||||
SELECT * FROM t1 WHERE id in (select distinct id_agente from t2) ORDER BY nombre ASC;
|
||||
id nombre
|
||||
1 row 1
|
||||
2 row 2
|
||||
3 row 3
|
||||
SELECT * FROM t1 WHERE id in (select distinct id_agente from t2);
|
||||
id nombre
|
||||
1 row 1
|
||||
2 row 2
|
||||
3 row 3
|
||||
DROP TABLE t1, t2;
|
||||
# This must be the last in the file:
|
||||
set optimizer_switch=@subselect_sj2_tmp;
|
||||
|
@@ -1163,6 +1163,36 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY t4 hash_index NULL #hash#$hj:PRIMARY 55:59 test.t3.t3_c 2 Using where; End temporary; Using join buffer (incremental, BNLH join)
|
||||
DROP TABLE t1,t2,t3,t4;
|
||||
#
|
||||
# MDEV-6263: Wrong result when using IN subquery with order by
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
id int(11) NOT NULL,
|
||||
nombre varchar(255) NOT NULL,
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
INSERT INTO t1 (id, nombre) VALUES
|
||||
(1, 'row 1'),(2, 'row 2'),(3, 'row 3'),
|
||||
(4, 'row 4'),(5, 'row 5'),(6, 'row 6');
|
||||
CREATE TABLE t2 (
|
||||
id_algo int(11) NOT NULL,
|
||||
id_agente int(11) NOT NULL,
|
||||
PRIMARY KEY (id_algo,id_agente),
|
||||
KEY another_data (id_agente)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
INSERT INTO t2 (id_algo, id_agente) VALUES
|
||||
(1, 1),(1, 2),(2, 1),(2, 2),(2, 3),(3, 1);
|
||||
SELECT * FROM t1 WHERE id in (select distinct id_agente from t2) ORDER BY nombre ASC;
|
||||
id nombre
|
||||
1 row 1
|
||||
2 row 2
|
||||
3 row 3
|
||||
SELECT * FROM t1 WHERE id in (select distinct id_agente from t2);
|
||||
id nombre
|
||||
1 row 1
|
||||
2 row 2
|
||||
3 row 3
|
||||
DROP TABLE t1, t2;
|
||||
# This must be the last in the file:
|
||||
set optimizer_switch=@subselect_sj2_tmp;
|
||||
#
|
||||
|
@@ -1150,6 +1150,36 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
1 PRIMARY t4 index NULL PRIMARY 59 NULL 2 Using where; Using index; End temporary
|
||||
DROP TABLE t1,t2,t3,t4;
|
||||
#
|
||||
# MDEV-6263: Wrong result when using IN subquery with order by
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
id int(11) NOT NULL,
|
||||
nombre varchar(255) NOT NULL,
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
INSERT INTO t1 (id, nombre) VALUES
|
||||
(1, 'row 1'),(2, 'row 2'),(3, 'row 3'),
|
||||
(4, 'row 4'),(5, 'row 5'),(6, 'row 6');
|
||||
CREATE TABLE t2 (
|
||||
id_algo int(11) NOT NULL,
|
||||
id_agente int(11) NOT NULL,
|
||||
PRIMARY KEY (id_algo,id_agente),
|
||||
KEY another_data (id_agente)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
INSERT INTO t2 (id_algo, id_agente) VALUES
|
||||
(1, 1),(1, 2),(2, 1),(2, 2),(2, 3),(3, 1);
|
||||
SELECT * FROM t1 WHERE id in (select distinct id_agente from t2) ORDER BY nombre ASC;
|
||||
id nombre
|
||||
1 row 1
|
||||
2 row 2
|
||||
3 row 3
|
||||
SELECT * FROM t1 WHERE id in (select distinct id_agente from t2);
|
||||
id nombre
|
||||
1 row 1
|
||||
2 row 2
|
||||
3 row 3
|
||||
DROP TABLE t1, t2;
|
||||
# This must be the last in the file:
|
||||
set optimizer_switch=@subselect_sj2_tmp;
|
||||
set optimizer_switch=default;
|
||||
|
@@ -107,6 +107,7 @@ id select_type tABle type possiBle_keys key key_len ref rows filtered ExtrA
|
||||
2 MATERIALIZED t10 index PRIMARY PRIMARY 4 NULL 10 100.00 Using index
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t1`.`A` AS `A`,`test`.`t1`.`B` AS `B`,`test`.`t2`.`A` AS `A`,`test`.`t2`.`B` AS `B` from `test`.`t1` left join `test`.`t2` on(((`test`.`t2`.`A` = `test`.`t1`.`A`) And <in_optimizer>(`test`.`t1`.`A`,`test`.`t1`.`A` in ( <mAteriAlize> (select `test`.`t10`.`pk` from `test`.`t10` ), <primAry_index_lookup>(`test`.`t1`.`A` in <temporAry tABle> on distinct_key where ((`test`.`t1`.`A` = `<suBquery2>`.`pk`))))))) where 1
|
||||
set join_buffer_size=8*1024;
|
||||
we shouldn't flatten if we're going to get a join of > MAX_TABLES.
|
||||
explain select * from
|
||||
t1 s00, t1 s01, t1 s02, t1 s03, t1 s04,t1 s05,t1 s06,t1 s07,t1 s08,t1 s09,
|
||||
@@ -198,6 +199,7 @@ a b a b
|
||||
0 0 0 0
|
||||
1 1 1 1
|
||||
2 2 2 2
|
||||
set join_buffer_size=default;
|
||||
prepare s1 from
|
||||
' select * from
|
||||
t1 left join t2 on (t2.a= t1.a and t2.a in (select pk from t10))
|
||||
@@ -1020,8 +1022,8 @@ insert into t2 values ("1", "1", "sup", "0"), ("2", "1", "sup", "1"),
|
||||
("4", "1", "sup", "0");
|
||||
create table t3 (
|
||||
id int(11) not null default '0',
|
||||
preceeding_id int(11) not null default '0',
|
||||
primary key (id,preceeding_id)
|
||||
preceding_id int(11) not null default '0',
|
||||
primary key (id,preceding_id)
|
||||
);
|
||||
create table t4 (
|
||||
user_id varchar(50) not null,
|
||||
|
@@ -653,13 +653,15 @@ SELECT * FROM t1;
|
||||
dt1
|
||||
DROP TABLE t1;
|
||||
End of 5.1 tests
|
||||
SET timestamp=UNIX_TIMESTAMP('2001-01-01 10:20:30');
|
||||
create table t1 (d date, t time) engine=myisam;
|
||||
insert into t1 values ('2000-12-03','22:55:23'),('2008-05-03','10:19:31');
|
||||
select case when d = '2012-12-12' then d else t end as cond, group_concat( d ) from t1 group by cond;
|
||||
cond group_concat( d )
|
||||
0000-00-00 10:19:31 2008-05-03
|
||||
0000-00-00 22:55:23 2000-12-03
|
||||
2001-01-01 10:19:31 2008-05-03
|
||||
2001-01-01 22:55:23 2000-12-03
|
||||
drop table t1;
|
||||
SET timestamp=DEFAULT;
|
||||
#
|
||||
# Semantics of the condition <non-nullable datetime field> IS NULL
|
||||
# when the field belongs to an inner table of an outer join
|
||||
@@ -722,6 +724,15 @@ dt
|
||||
2013-09-21 08:20:30
|
||||
drop procedure test5041;
|
||||
SET @@timestamp=DEFAULT;
|
||||
#
|
||||
# MDEV-6097 Inconsistent results for CAST(int,decimal,double AS DATETIME)
|
||||
#
|
||||
SELECT
|
||||
CAST(010203101112 AS DATETIME(1)) AS c1,
|
||||
CAST(010203101112.2 AS DATETIME(1)) AS c2,
|
||||
CAST(010203101112.2+0e0 AS DATETIME(1)) AS c3;
|
||||
c1 c2 c3
|
||||
2001-02-03 10:11:12.0 2001-02-03 10:11:12.2 2001-02-03 10:11:12.2
|
||||
End of 5.3 tests
|
||||
#
|
||||
# Start of 5.5 tests
|
||||
|
@@ -163,12 +163,26 @@ create table t1 (f1 time , f2 varchar(5), key(f1));
|
||||
insert into t1 values ('00:20:01','a'),('00:20:03','b');
|
||||
select * from t1 force key (f1) where f1 < curdate();
|
||||
f1 f2
|
||||
00:20:01 a
|
||||
00:20:03 b
|
||||
select * from t1 ignore key (f1) where f1 < curdate();
|
||||
f1 f2
|
||||
select * from t1 force key (f1) where f1 > curdate();
|
||||
f1 f2
|
||||
00:20:01 a
|
||||
00:20:03 b
|
||||
select * from t1 ignore key (f1) where f1 > curdate();
|
||||
f1 f2
|
||||
00:20:01 a
|
||||
00:20:03 b
|
||||
delete from t1;
|
||||
insert into t1 values ('-00:20:01','a'),('-00:20:03','b');
|
||||
select * from t1 force key (f1) where f1 < curdate();
|
||||
f1 f2
|
||||
-00:20:01 a
|
||||
-00:20:03 b
|
||||
select * from t1 ignore key (f1) where f1 < curdate();
|
||||
f1 f2
|
||||
-00:20:01 a
|
||||
-00:20:03 b
|
||||
drop table t1;
|
||||
create table t1(f1 time);
|
||||
insert into t1 values ('23:38:57');
|
||||
@@ -301,6 +315,34 @@ Field Type Null Key Default Extra
|
||||
MAX(t1)+1 decimal(22,1) YES NULL
|
||||
DROP TABLE t2,t1;
|
||||
#
|
||||
# MDEV-4858 Wrong results for a huge unsigned value inserted into a TIME column
|
||||
#
|
||||
SET sql_mode=traditional;
|
||||
CREATE TABLE t1 (a TIME(6));
|
||||
INSERT INTO t1 VALUES (CAST(0xFFFFFFFF00000000 AS UNSIGNED));
|
||||
ERROR 22007: Incorrect time value: '18446744069414584320' for column 'a' at row 1
|
||||
SET sql_mode=DEFAULT;
|
||||
INSERT INTO t1 VALUES (CAST(0xFFFFFFFF00000000 AS UNSIGNED));
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'a' at row 1
|
||||
SELECT * FROM t1;
|
||||
a
|
||||
838:59:59.999999
|
||||
DROP TABLE t1;
|
||||
SELECT TIME'00:00:00'> CAST(0xFFFFFFFF00000000 AS UNSIGNED);
|
||||
TIME'00:00:00'> CAST(0xFFFFFFFF00000000 AS UNSIGNED)
|
||||
0
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect time value: '18446744069414584320'
|
||||
#
|
||||
# MDEV-6100 No warning on CAST(9000000 AS TIME)
|
||||
#
|
||||
SELECT CAST(9000000 AS TIME);
|
||||
CAST(9000000 AS TIME)
|
||||
838:59:59
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect time value: '9000000'
|
||||
#
|
||||
# End of 5.3 tests
|
||||
#
|
||||
CREATE TABLE t1 (f1 TIME);
|
||||
@@ -326,3 +368,17 @@ SELECT '-24:00:00' = (SELECT f1 FROM t1);
|
||||
'-24:00:00' = (SELECT f1 FROM t1)
|
||||
1
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Start of 10.0 tests
|
||||
#
|
||||
#
|
||||
# MDEV-6102 Comparison between TIME and DATETIME does not use CURRENT_DATE
|
||||
#
|
||||
SET timestamp=UNIX_TIMESTAMP('2014-04-14 01:02:03');
|
||||
SELECT CAST(TIME'10:20:30' AS DATETIME), TIME'10:20:30'=TIMESTAMP'2014-04-14 10:20:30' AS cmp;
|
||||
CAST(TIME'10:20:30' AS DATETIME) cmp
|
||||
2014-04-14 10:20:30 1
|
||||
SET timestamp=DEFAULT;
|
||||
#
|
||||
# End of 10.0 tests
|
||||
#
|
||||
|
2310
mysql-test/r/type_time_6065.result
Normal file
2310
mysql-test/r/type_time_6065.result
Normal file
File diff suppressed because it is too large
Load Diff
@@ -11,52 +11,52 @@ Warnings:
|
||||
Note 1265 Data truncated for column 'a' at row 1
|
||||
insert t1 values (20101211010203.45678);
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'a' at row 1
|
||||
Note 1265 Data truncated for column 'a' at row 1
|
||||
insert t1 values (20101211030405.789e0);
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'a' at row 1
|
||||
Note 1265 Data truncated for column 'a' at row 1
|
||||
insert t1 values (99991231235959e1);
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'a' at row 1
|
||||
Warning 1264 Out of range value for column 'a' at row 1
|
||||
select * from t1;
|
||||
a
|
||||
00:00:00.000
|
||||
00:20:03.123
|
||||
01:02:03.456
|
||||
03:04:05.789
|
||||
15:47:11.123
|
||||
838:59:59.999
|
||||
select truncate(a, 6) from t1;
|
||||
truncate(a, 6)
|
||||
0.000000
|
||||
2003.123000
|
||||
10203.456000
|
||||
30405.789062
|
||||
154711.123000
|
||||
8385959.999000
|
||||
select a DIV 1 from t1;
|
||||
a DIV 1
|
||||
0
|
||||
2003
|
||||
10203
|
||||
30405
|
||||
154711
|
||||
8385959
|
||||
select group_concat(distinct a) from t1;
|
||||
group_concat(distinct a)
|
||||
00:00:00.000,00:20:03.123,01:02:03.456,03:04:05.789,15:47:11.123
|
||||
00:20:03.123,01:02:03.456,03:04:05.789,15:47:11.123,838:59:59.999
|
||||
alter table t1 engine=innodb;
|
||||
select * from t1 order by a;
|
||||
a
|
||||
00:00:00.000
|
||||
00:20:03.123
|
||||
01:02:03.456
|
||||
03:04:05.789
|
||||
15:47:11.123
|
||||
838:59:59.999
|
||||
select * from t1 order by a+0;
|
||||
a
|
||||
00:00:00.000
|
||||
00:20:03.123
|
||||
01:02:03.456
|
||||
03:04:05.789
|
||||
15:47:11.123
|
||||
838:59:59.999
|
||||
drop table t1;
|
||||
create table t1 (a time(4)) engine=innodb;
|
||||
insert t1 values ('2010-12-11 01:02:03.456789');
|
||||
|
@@ -1876,8 +1876,8 @@ SELECT(SELECT 1 AS a FROM dual ORDER BY a DESC LIMIT 1) AS dev;
|
||||
dev
|
||||
1
|
||||
#
|
||||
# LP bug#1010729: Unexpected syntax error from UNION
|
||||
# (bug #54382) with single-table join nest
|
||||
# lp:1010729: Unexpected syntax error from UNION
|
||||
# (bug #54382) with single-table join nest
|
||||
#
|
||||
CREATE TABLE t1 (a int);
|
||||
CREATE TABLE t2 (b int);
|
||||
@@ -1892,3 +1892,12 @@ UNION
|
||||
SELECT t1.pk FROM t1 LEFT JOIN (t2) ON (t1.pk = t2.fk);
|
||||
pk
|
||||
DROP TABLE t1,t2;
|
||||
create table t1 (a int);
|
||||
insert t1 values (1),(2),(3),(1);
|
||||
explain select 1 from dual where exists (select max(a) from t1 group by a union select a+2 from t1);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
2 SUBQUERY t1 ALL NULL NULL NULL NULL 4 Using temporary; Using filesort
|
||||
3 UNION t1 ALL NULL NULL NULL NULL 4
|
||||
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL
|
||||
drop table t1;
|
||||
|
@@ -615,7 +615,7 @@ select A.a + 10 * B.a + 100 * C.a, 1234 from t2 A, t2 B, t2 C;
|
||||
explain
|
||||
update t1 set key1=key1+1 where key1 between 10 and 110 order by key1 limit 2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range key1 key1 5 NULL 100 Using where; Using buffer
|
||||
1 SIMPLE t1 range key1 key1 5 NULL 2 Using where; Using buffer
|
||||
flush status;
|
||||
update t1 set key1=key1+1 where key1 between 10 and 110 order by key1 limit 2;
|
||||
show status like 'Handler_read%';
|
||||
|
@@ -1,5 +1,5 @@
|
||||
drop table if exists t1,t2,t3,t4,t9,`t1a``b`,v1,v2,v3,v4,v5,v6;
|
||||
drop view if exists t1,t2,`t1a``b`,v1,v2,v3,v4,v5,v6;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t9,`t1a``b`,v1,v2,v3,v4,v5,v6;
|
||||
drop view if exists t1,t2,t3,t4,t5,t6,t9,`t1a``b`,v1,v2,v3,v4,v5,v6;
|
||||
drop database if exists mysqltest;
|
||||
use test;
|
||||
SET @save_optimizer_switch=@@optimizer_switch;
|
||||
@@ -4114,6 +4114,114 @@ a
|
||||
20
|
||||
DROP VIEW v1,v2,v3;
|
||||
DROP TABLE t1,t2;
|
||||
#
|
||||
# MDEV-6251: SIGSEGV in query optimizer (in set_check_materialized
|
||||
# with MERGE view)
|
||||
#
|
||||
CREATE TABLE t1 (a1 INT(11) NOT NULL DEFAULT NULL AUTO_INCREMENT PRIMARY KEY);
|
||||
CREATE TABLE t2 (b1 INT(11) NOT NULL DEFAULT NULL AUTO_INCREMENT PRIMARY KEY);
|
||||
CREATE TABLE t3 (c1 INT(11) NOT NULL DEFAULT NULL AUTO_INCREMENT PRIMARY KEY);
|
||||
CREATE TABLE t4 (d1 INT(11) NOT NULL DEFAULT NULL AUTO_INCREMENT PRIMARY KEY);
|
||||
CREATE TABLE t5 (e1 INT(11) NOT NULL DEFAULT NULL AUTO_INCREMENT PRIMARY KEY);
|
||||
CREATE TABLE t6 (f1 INT(11) NOT NULL DEFAULT NULL AUTO_INCREMENT PRIMARY KEY);
|
||||
CREATE OR REPLACE view v1 AS
|
||||
SELECT 1
|
||||
FROM t1 a_alias_1
|
||||
LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1
|
||||
LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1
|
||||
LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1
|
||||
LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1
|
||||
;
|
||||
SELECT 1
|
||||
FROM (( SELECT 1
|
||||
FROM t1 a_alias_1
|
||||
LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1
|
||||
LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1
|
||||
LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1
|
||||
LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1
|
||||
) t1)
|
||||
LEFT OUTER JOIN (( SELECT 1
|
||||
FROM t1 a_alias_1
|
||||
LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1
|
||||
LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1
|
||||
LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1
|
||||
LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1
|
||||
) t2) ON 1=1
|
||||
LEFT OUTER JOIN (( SELECT 1
|
||||
FROM t1 a_alias_1
|
||||
LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1
|
||||
LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1
|
||||
LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1
|
||||
LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1
|
||||
) t3) ON 1=1
|
||||
LEFT OUTER JOIN (( SELECT 1
|
||||
FROM t1 a_alias_1
|
||||
LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1
|
||||
LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1
|
||||
LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1
|
||||
LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1
|
||||
) t4) ON 1=1
|
||||
LEFT OUTER JOIN (( SELECT 1
|
||||
FROM t1 a_alias_1
|
||||
LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1
|
||||
LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1
|
||||
LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1
|
||||
LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1
|
||||
) t5) ON 1=1
|
||||
LEFT OUTER JOIN (( SELECT 1
|
||||
FROM t1 a_alias_1
|
||||
LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1
|
||||
LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1
|
||||
LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1
|
||||
LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1
|
||||
) t6) ON 1=1
|
||||
LEFT OUTER JOIN (( SELECT 1
|
||||
FROM t1 a_alias_1
|
||||
LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1
|
||||
LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1
|
||||
LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1
|
||||
LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1
|
||||
) t7) ON 1=1
|
||||
LEFT OUTER JOIN (( SELECT 1
|
||||
FROM t1 a_alias_1
|
||||
LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1
|
||||
LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1
|
||||
LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1
|
||||
LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1
|
||||
) t8) ON 1=1
|
||||
;
|
||||
1
|
||||
SELECT 1
|
||||
FROM (v1 t1)
|
||||
LEFT OUTER JOIN (v1 t2) ON 1=1
|
||||
LEFT OUTER JOIN (v1 t3) ON 1=1
|
||||
LEFT OUTER JOIN (v1 t4) ON 1=1
|
||||
LEFT OUTER JOIN (v1 t5) ON 1=1
|
||||
LEFT OUTER JOIN (v1 t6) ON 1=1
|
||||
LEFT OUTER JOIN (v1 t7) ON 1=1
|
||||
LEFT OUTER JOIN (v1 t8) ON 1=1
|
||||
;
|
||||
1
|
||||
drop view v1;
|
||||
drop table t1,t2,t3,t4,t5,t6;
|
||||
# -----------------------------------------------------------------
|
||||
# -- End of 5.2 tests.
|
||||
# -----------------------------------------------------------------
|
||||
@@ -5052,6 +5160,114 @@ execute stmt1;
|
||||
deallocate prepare stmt1;
|
||||
drop view v1,v2;
|
||||
drop table t1,t2;
|
||||
#
|
||||
# MDEV-6251: SIGSEGV in query optimizer (in set_check_materialized
|
||||
# with MERGE view)
|
||||
#
|
||||
CREATE TABLE t1 (a1 INT(11) NOT NULL DEFAULT NULL AUTO_INCREMENT PRIMARY KEY);
|
||||
CREATE TABLE t2 (b1 INT(11) NOT NULL DEFAULT NULL AUTO_INCREMENT PRIMARY KEY);
|
||||
CREATE TABLE t3 (c1 INT(11) NOT NULL DEFAULT NULL AUTO_INCREMENT PRIMARY KEY);
|
||||
CREATE TABLE t4 (d1 INT(11) NOT NULL DEFAULT NULL AUTO_INCREMENT PRIMARY KEY);
|
||||
CREATE TABLE t5 (e1 INT(11) NOT NULL DEFAULT NULL AUTO_INCREMENT PRIMARY KEY);
|
||||
CREATE TABLE t6 (f1 INT(11) NOT NULL DEFAULT NULL AUTO_INCREMENT PRIMARY KEY);
|
||||
CREATE OR REPLACE view v1 AS
|
||||
SELECT 1
|
||||
FROM t1 a_alias_1
|
||||
LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1
|
||||
LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1
|
||||
LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1
|
||||
LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1
|
||||
;
|
||||
SELECT 1
|
||||
FROM (( SELECT 1
|
||||
FROM t1 a_alias_1
|
||||
LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1
|
||||
LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1
|
||||
LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1
|
||||
LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1
|
||||
) t1)
|
||||
LEFT OUTER JOIN (( SELECT 1
|
||||
FROM t1 a_alias_1
|
||||
LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1
|
||||
LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1
|
||||
LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1
|
||||
LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1
|
||||
) t2) ON 1=1
|
||||
LEFT OUTER JOIN (( SELECT 1
|
||||
FROM t1 a_alias_1
|
||||
LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1
|
||||
LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1
|
||||
LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1
|
||||
LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1
|
||||
) t3) ON 1=1
|
||||
LEFT OUTER JOIN (( SELECT 1
|
||||
FROM t1 a_alias_1
|
||||
LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1
|
||||
LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1
|
||||
LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1
|
||||
LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1
|
||||
) t4) ON 1=1
|
||||
LEFT OUTER JOIN (( SELECT 1
|
||||
FROM t1 a_alias_1
|
||||
LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1
|
||||
LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1
|
||||
LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1
|
||||
LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1
|
||||
) t5) ON 1=1
|
||||
LEFT OUTER JOIN (( SELECT 1
|
||||
FROM t1 a_alias_1
|
||||
LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1
|
||||
LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1
|
||||
LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1
|
||||
LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1
|
||||
) t6) ON 1=1
|
||||
LEFT OUTER JOIN (( SELECT 1
|
||||
FROM t1 a_alias_1
|
||||
LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1
|
||||
LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1
|
||||
LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1
|
||||
LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1
|
||||
) t7) ON 1=1
|
||||
LEFT OUTER JOIN (( SELECT 1
|
||||
FROM t1 a_alias_1
|
||||
LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1
|
||||
LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1
|
||||
LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1
|
||||
LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1
|
||||
LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1
|
||||
) t8) ON 1=1
|
||||
;
|
||||
1
|
||||
SELECT 1
|
||||
FROM (v1 t1)
|
||||
LEFT OUTER JOIN (v1 t2) ON 1=1
|
||||
LEFT OUTER JOIN (v1 t3) ON 1=1
|
||||
LEFT OUTER JOIN (v1 t4) ON 1=1
|
||||
LEFT OUTER JOIN (v1 t5) ON 1=1
|
||||
LEFT OUTER JOIN (v1 t6) ON 1=1
|
||||
LEFT OUTER JOIN (v1 t7) ON 1=1
|
||||
LEFT OUTER JOIN (v1 t8) ON 1=1
|
||||
;
|
||||
1
|
||||
drop view v1;
|
||||
drop table t1,t2,t3,t4,t5,t6;
|
||||
# -----------------------------------------------------------------
|
||||
# -- End of 5.3 tests.
|
||||
# -----------------------------------------------------------------
|
||||
|
Reference in New Issue
Block a user