mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
5.3 merge
This commit is contained in:
@ -1687,6 +1687,7 @@ SELECT t.b, t.c, t1.a
|
||||
FROM t1, (SELECT t2.b, t2.c FROM t3 RIGHT JOIN t2 ON t2.a = t3.b) AS t
|
||||
WHERE t.b AND t.c = t1.a;
|
||||
b c a
|
||||
8 c c
|
||||
EXPLAIN EXTENDED
|
||||
SELECT t.b, t.c, t1.a
|
||||
FROM t1, (SELECT t2.b, t2.c FROM t3 RIGHT JOIN t2 ON t2.a = t3.b) AS t
|
||||
@ -1701,6 +1702,7 @@ SELECT t.b, t.c, t1.a
|
||||
FROM t1, (SELECT t2.b, t2.c FROM t3 RIGHT JOIN t2 ON t2.a = t3.b) AS t
|
||||
WHERE t.b <> 0 AND t.c = t1.a;
|
||||
b c a
|
||||
8 c c
|
||||
INSERT INTO t3 VALUES (100), (200);
|
||||
EXPLAIN EXTENDED
|
||||
SELECT t.b, t.c, t1.a
|
||||
@ -1716,7 +1718,7 @@ SELECT t.b, t.c, t1.a
|
||||
FROM t1, (SELECT t2.b, t2.c FROM t3 RIGHT JOIN t2 ON t2.a = t3.b) AS t
|
||||
WHERE t.b AND t.c = t1.a;
|
||||
b c a
|
||||
NULL NULL c
|
||||
8 c c
|
||||
EXPLAIN EXTENDED
|
||||
SELECT t.b, t.c, t1.a
|
||||
FROM t1, (SELECT t2.b, t2.c FROM t3 RIGHT JOIN t2 ON t2.a = t3.b) AS t
|
||||
@ -1731,7 +1733,7 @@ SELECT t.b, t.c, t1.a
|
||||
FROM t1, (SELECT t2.b, t2.c FROM t3 RIGHT JOIN t2 ON t2.a = t3.b) AS t
|
||||
WHERE t.b <> 0 AND t.c = t1.a;
|
||||
b c a
|
||||
NULL NULL c
|
||||
8 c c
|
||||
SET optimizer_switch=@save_optimizer_switch;
|
||||
DROP TABLE t1,t2,t3;
|
||||
#
|
||||
|
@ -5589,4 +5589,52 @@ set join_buffer_size=default;
|
||||
set join_cache_level=default;
|
||||
set optimizer_switch=@tmp_optimizer_switch;
|
||||
DROP TABLE t1,t2,t3;
|
||||
#
|
||||
# Bug #1058071: LEFT JOIN using blobs
|
||||
# (mdev-564) when join buffer size is small
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
col269 decimal(31,10) unsigned DEFAULT NULL,
|
||||
col280 multipoint DEFAULT NULL,
|
||||
col281 tinyint(1) DEFAULT NULL,
|
||||
col282 time NOT NULL,
|
||||
col284 datetime DEFAULT NULL,
|
||||
col286 date DEFAULT NULL,
|
||||
col287 datetime DEFAULT NULL,
|
||||
col288 decimal(30,29) DEFAULT NULL,
|
||||
col291 time DEFAULT NULL,
|
||||
col292 time DEFAULT NULL
|
||||
) ENGINE=Aria;
|
||||
INSERT INTO t1 VALUES
|
||||
(0.0,PointFromText('POINT(9 0)'),0,'11:24:05','2013-04-14 21:30:28',NULL,'2011-12-20 06:00:34',9.9,'13:04:39',NULL),
|
||||
(0.0,NULL,127,'05:43:12','2012-09-05 06:15:27','2027-01-01','2011-10-29 10:48:29',0.0,'06:24:05','11:33:37'),
|
||||
(0.0,NULL,127,'12:54:41','2013-01-12 11:32:58','2011-11-03','2013-01-03 02:00:34',00,'11:54:15','20:19:15'),
|
||||
(0.0,PointFromText('POINT(9 0)'),0,'19:48:07','2012-07-16 15:45:25','2012-03-25','2013-09-07 17:21:52',0.5,'17:36:54','21:24:19'),
|
||||
(0.0,PointFromText('POINT(9 0)'),0,'03:43:48','2012-09-28 00:00:00','2012-06-26','2011-11-16 05:01:09',00,'01:25:42','19:30:06'),
|
||||
(0.0,LineStringFromText('LINESTRING(0 0,9 9,0 0,9 0,0 0)'),127,'11:33:21','2012-03-31 10:29:22','2012-10-10','2012-04-21 19:21:06',NULL,'05:13:22','09:48:34'),
|
||||
(NULL,PointFromText('POINT(9 0)'),127,'00:00:00','0000-00-00','2012-04-04 21:26:12','2013-03-04',0.0,'12:54:30',NULL),
|
||||
(NULL,PointFromText('POINT(9 0)'),1,'00:00:00','2013-05-01 22:37:49','2013-06-26','2012-09-22 17:31:03',0.0,'08:09:57','11:15:36');
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'col286' at row 7
|
||||
CREATE TABLE t2 (b int) ENGINE=Aria;
|
||||
INSERT INTO t2 VALUES (NULL);
|
||||
CREATE TABLE t3 (c int) ENGINE=Aria;
|
||||
INSERT INTO t3 VALUES (NULL);
|
||||
set @tmp_optimizer_switch=@@optimizer_switch;
|
||||
set optimizer_switch = 'outer_join_with_cache=on,join_cache_incremental=on';
|
||||
set join_buffer_size=128;
|
||||
EXPLAIN
|
||||
SELECT 1 AS c FROM t1 NATURAL LEFT JOIN t2 LEFT OUTER JOIN t3 ON 1
|
||||
GROUP BY elt(t1.col282,1,t1.col280);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 8 Using temporary; Using filesort
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (flat, BNL join)
|
||||
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (incremental, BNL join)
|
||||
SELECT 1 AS c FROM t1 NATURAL LEFT JOIN t2 LEFT OUTER JOIN t3 ON 1
|
||||
GROUP BY elt(t1.col282,1,t1.col280);
|
||||
c
|
||||
1
|
||||
set join_buffer_size=default;
|
||||
set optimizer_switch=@tmp_optimizer_switch;
|
||||
DROP table t1,t2,t3;
|
||||
set @@optimizer_switch=@save_optimizer_switch;
|
||||
|
@ -204,6 +204,10 @@ The following options may be given as the first argument:
|
||||
-?, --help Display this help and exit.
|
||||
--ignore-builtin-innodb
|
||||
Disable initialization of builtin InnoDB plugin
|
||||
--ignore-db-dirs=name
|
||||
Specifies a directory to add to the ignore list when
|
||||
collecting database names from the datadir. Put a blank
|
||||
argument to reset the list accumulated so far.
|
||||
--init-connect=name Command(s) that are executed for each new connection
|
||||
(unless the user has SUPER privilege)
|
||||
--init-file=name Read SQL commands from this file at startup
|
||||
@ -909,6 +913,7 @@ general-log FALSE
|
||||
group-concat-max-len 1024
|
||||
help TRUE
|
||||
ignore-builtin-innodb FALSE
|
||||
ignore-db-dirs
|
||||
init-connect
|
||||
init-file (No default value)
|
||||
init-rpl-role MASTER
|
||||
|
@ -4887,7 +4887,7 @@ CREATE TABLE t5 (f1 int) ;
|
||||
INSERT INTO t5 VALUES (20),(5);
|
||||
CREATE TABLE t6(f1 int);
|
||||
INSERT INTO t6 VALUES (9),(7);
|
||||
SET SESSION join_buffer_size = 2048;
|
||||
SET SESSION join_buffer_size = 2176;
|
||||
EXPLAIN
|
||||
SELECT STRAIGHT_JOIN * FROM t2, (t1 LEFT JOIN (t3,t4) ON t1.f1 = t4.f1), t5, t6;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
@ -4901,50 +4901,50 @@ SELECT STRAIGHT_JOIN * FROM t2, (t1 LEFT JOIN (t3,t4) ON t1.f1 = t4.f1), t5, t6;
|
||||
f1 f1 f1 f1 f2 f1 f1
|
||||
3 9 NULL NULL NULL 20 9
|
||||
7 9 NULL NULL NULL 20 9
|
||||
3 9 NULL NULL NULL 20 7
|
||||
7 9 NULL NULL NULL 20 7
|
||||
3 9 NULL NULL NULL 5 9
|
||||
7 9 NULL NULL NULL 5 9
|
||||
3 9 NULL NULL NULL 5 7
|
||||
7 9 NULL NULL NULL 5 7
|
||||
18 9 NULL NULL NULL 20 9
|
||||
3 9 NULL NULL NULL 20 9
|
||||
18 9 NULL NULL NULL 20 7
|
||||
3 9 NULL NULL NULL 20 7
|
||||
18 9 NULL NULL NULL 5 9
|
||||
3 9 NULL NULL NULL 5 9
|
||||
18 9 NULL NULL NULL 5 7
|
||||
3 9 NULL NULL NULL 5 7
|
||||
7 9 NULL NULL NULL 20 9
|
||||
18 9 NULL NULL NULL 20 9
|
||||
7 9 NULL NULL NULL 20 7
|
||||
18 9 NULL NULL NULL 20 7
|
||||
7 9 NULL NULL NULL 5 9
|
||||
18 9 NULL NULL NULL 5 9
|
||||
7 9 NULL NULL NULL 5 7
|
||||
18 9 NULL NULL NULL 5 7
|
||||
3 9 NULL NULL NULL 20 9
|
||||
7 9 NULL NULL NULL 20 9
|
||||
3 9 NULL NULL NULL 20 7
|
||||
7 9 NULL NULL NULL 20 7
|
||||
3 9 NULL NULL NULL 5 9
|
||||
7 9 NULL NULL NULL 5 9
|
||||
3 9 NULL NULL NULL 5 7
|
||||
7 9 NULL NULL NULL 5 7
|
||||
18 9 NULL NULL NULL 20 9
|
||||
3 9 NULL NULL NULL 20 9
|
||||
18 9 NULL NULL NULL 20 7
|
||||
3 9 NULL NULL NULL 20 7
|
||||
18 9 NULL NULL NULL 5 9
|
||||
3 9 NULL NULL NULL 5 9
|
||||
18 9 NULL NULL NULL 5 7
|
||||
3 9 NULL NULL NULL 5 7
|
||||
7 9 NULL NULL NULL 20 9
|
||||
18 9 NULL NULL NULL 20 9
|
||||
7 9 NULL NULL NULL 20 7
|
||||
18 9 NULL NULL NULL 20 7
|
||||
18 9 NULL NULL NULL 20 9
|
||||
3 9 NULL NULL NULL 20 9
|
||||
3 9 NULL NULL NULL 5 9
|
||||
7 9 NULL NULL NULL 5 9
|
||||
18 9 NULL NULL NULL 5 9
|
||||
18 9 NULL NULL NULL 20 7
|
||||
3 9 NULL NULL NULL 20 7
|
||||
3 9 NULL NULL NULL 5 7
|
||||
7 9 NULL NULL NULL 5 7
|
||||
18 9 NULL NULL NULL 5 7
|
||||
3 9 NULL NULL NULL 5 9
|
||||
7 9 NULL NULL NULL 5 9
|
||||
18 9 NULL NULL NULL 5 9
|
||||
3 9 NULL NULL NULL 5 9
|
||||
7 9 NULL NULL NULL 20 9
|
||||
3 9 NULL NULL NULL 5 7
|
||||
7 9 NULL NULL NULL 5 7
|
||||
18 9 NULL NULL NULL 5 7
|
||||
3 9 NULL NULL NULL 5 7
|
||||
7 9 NULL NULL NULL 20 7
|
||||
18 9 NULL NULL NULL 20 9
|
||||
3 9 NULL NULL NULL 20 9
|
||||
7 9 NULL NULL NULL 20 9
|
||||
18 9 NULL NULL NULL 20 9
|
||||
7 9 NULL NULL NULL 5 9
|
||||
18 9 NULL NULL NULL 20 7
|
||||
3 9 NULL NULL NULL 20 7
|
||||
7 9 NULL NULL NULL 20 7
|
||||
18 9 NULL NULL NULL 20 7
|
||||
7 9 NULL NULL NULL 5 7
|
||||
18 9 NULL NULL NULL 5 9
|
||||
3 9 NULL NULL NULL 5 9
|
||||
7 9 NULL NULL NULL 5 9
|
||||
18 9 NULL NULL NULL 5 9
|
||||
18 9 NULL NULL NULL 5 7
|
||||
3 9 NULL NULL NULL 5 7
|
||||
7 9 NULL NULL NULL 5 7
|
||||
18 9 NULL NULL NULL 5 7
|
||||
SET SESSION join_buffer_size = DEFAULT;
|
||||
|
@ -4898,7 +4898,7 @@ CREATE TABLE t5 (f1 int) ;
|
||||
INSERT INTO t5 VALUES (20),(5);
|
||||
CREATE TABLE t6(f1 int);
|
||||
INSERT INTO t6 VALUES (9),(7);
|
||||
SET SESSION join_buffer_size = 2048;
|
||||
SET SESSION join_buffer_size = 2176;
|
||||
EXPLAIN
|
||||
SELECT STRAIGHT_JOIN * FROM t2, (t1 LEFT JOIN (t3,t4) ON t1.f1 = t4.f1), t5, t6;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
@ -4913,48 +4913,48 @@ f1 f1 f1 f1 f2 f1 f1
|
||||
3 9 NULL NULL NULL 20 9
|
||||
7 9 NULL NULL NULL 20 9
|
||||
18 9 NULL NULL NULL 20 9
|
||||
3 9 NULL NULL NULL 5 9
|
||||
7 9 NULL NULL NULL 5 9
|
||||
18 9 NULL NULL NULL 5 9
|
||||
3 9 NULL NULL NULL 20 7
|
||||
7 9 NULL NULL NULL 20 7
|
||||
18 9 NULL NULL NULL 20 7
|
||||
3 9 NULL NULL NULL 5 7
|
||||
7 9 NULL NULL NULL 5 7
|
||||
18 9 NULL NULL NULL 5 7
|
||||
3 9 NULL NULL NULL 20 9
|
||||
7 9 NULL NULL NULL 20 9
|
||||
18 9 NULL NULL NULL 20 9
|
||||
3 9 NULL NULL NULL 20 9
|
||||
7 9 NULL NULL NULL 20 9
|
||||
18 9 NULL NULL NULL 20 9
|
||||
3 9 NULL NULL NULL 20 9
|
||||
7 9 NULL NULL NULL 20 9
|
||||
18 9 NULL NULL NULL 20 9
|
||||
3 9 NULL NULL NULL 5 9
|
||||
7 9 NULL NULL NULL 5 9
|
||||
18 9 NULL NULL NULL 5 9
|
||||
3 9 NULL NULL NULL 20 7
|
||||
7 9 NULL NULL NULL 20 7
|
||||
18 9 NULL NULL NULL 20 7
|
||||
3 9 NULL NULL NULL 5 7
|
||||
7 9 NULL NULL NULL 5 7
|
||||
18 9 NULL NULL NULL 5 7
|
||||
3 9 NULL NULL NULL 20 9
|
||||
7 9 NULL NULL NULL 20 9
|
||||
18 9 NULL NULL NULL 20 9
|
||||
3 9 NULL NULL NULL 5 9
|
||||
7 9 NULL NULL NULL 5 9
|
||||
18 9 NULL NULL NULL 5 9
|
||||
3 9 NULL NULL NULL 5 9
|
||||
7 9 NULL NULL NULL 5 9
|
||||
18 9 NULL NULL NULL 5 9
|
||||
3 9 NULL NULL NULL 5 9
|
||||
7 9 NULL NULL NULL 5 9
|
||||
18 9 NULL NULL NULL 5 9
|
||||
3 9 NULL NULL NULL 20 7
|
||||
7 9 NULL NULL NULL 20 7
|
||||
18 9 NULL NULL NULL 20 7
|
||||
3 9 NULL NULL NULL 5 7
|
||||
7 9 NULL NULL NULL 5 7
|
||||
18 9 NULL NULL NULL 5 7
|
||||
3 9 NULL NULL NULL 20 9
|
||||
7 9 NULL NULL NULL 20 9
|
||||
18 9 NULL NULL NULL 20 9
|
||||
3 9 NULL NULL NULL 5 9
|
||||
7 9 NULL NULL NULL 5 9
|
||||
18 9 NULL NULL NULL 5 9
|
||||
3 9 NULL NULL NULL 20 7
|
||||
7 9 NULL NULL NULL 20 7
|
||||
18 9 NULL NULL NULL 20 7
|
||||
3 9 NULL NULL NULL 20 7
|
||||
7 9 NULL NULL NULL 20 7
|
||||
18 9 NULL NULL NULL 20 7
|
||||
3 9 NULL NULL NULL 20 7
|
||||
7 9 NULL NULL NULL 20 7
|
||||
18 9 NULL NULL NULL 20 7
|
||||
3 9 NULL NULL NULL 5 7
|
||||
7 9 NULL NULL NULL 5 7
|
||||
18 9 NULL NULL NULL 5 7
|
||||
3 9 NULL NULL NULL 5 7
|
||||
7 9 NULL NULL NULL 5 7
|
||||
18 9 NULL NULL NULL 5 7
|
||||
3 9 NULL NULL NULL 5 7
|
||||
7 9 NULL NULL NULL 5 7
|
||||
18 9 NULL NULL NULL 5 7
|
||||
3 9 NULL NULL NULL 5 7
|
||||
7 9 NULL NULL NULL 5 7
|
||||
18 9 NULL NULL NULL 5 7
|
||||
|
@ -4887,7 +4887,7 @@ CREATE TABLE t5 (f1 int) ;
|
||||
INSERT INTO t5 VALUES (20),(5);
|
||||
CREATE TABLE t6(f1 int);
|
||||
INSERT INTO t6 VALUES (9),(7);
|
||||
SET SESSION join_buffer_size = 2048;
|
||||
SET SESSION join_buffer_size = 2176;
|
||||
EXPLAIN
|
||||
SELECT STRAIGHT_JOIN * FROM t2, (t1 LEFT JOIN (t3,t4) ON t1.f1 = t4.f1), t5, t6;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
@ -4901,50 +4901,50 @@ SELECT STRAIGHT_JOIN * FROM t2, (t1 LEFT JOIN (t3,t4) ON t1.f1 = t4.f1), t5, t6;
|
||||
f1 f1 f1 f1 f2 f1 f1
|
||||
3 9 NULL NULL NULL 20 9
|
||||
7 9 NULL NULL NULL 20 9
|
||||
3 9 NULL NULL NULL 20 7
|
||||
7 9 NULL NULL NULL 20 7
|
||||
3 9 NULL NULL NULL 5 9
|
||||
7 9 NULL NULL NULL 5 9
|
||||
3 9 NULL NULL NULL 5 7
|
||||
7 9 NULL NULL NULL 5 7
|
||||
18 9 NULL NULL NULL 20 9
|
||||
3 9 NULL NULL NULL 20 9
|
||||
18 9 NULL NULL NULL 20 7
|
||||
3 9 NULL NULL NULL 20 7
|
||||
18 9 NULL NULL NULL 5 9
|
||||
3 9 NULL NULL NULL 5 9
|
||||
18 9 NULL NULL NULL 5 7
|
||||
3 9 NULL NULL NULL 5 7
|
||||
7 9 NULL NULL NULL 20 9
|
||||
18 9 NULL NULL NULL 20 9
|
||||
7 9 NULL NULL NULL 20 7
|
||||
18 9 NULL NULL NULL 20 7
|
||||
7 9 NULL NULL NULL 5 9
|
||||
18 9 NULL NULL NULL 5 9
|
||||
7 9 NULL NULL NULL 5 7
|
||||
18 9 NULL NULL NULL 5 7
|
||||
3 9 NULL NULL NULL 20 9
|
||||
7 9 NULL NULL NULL 20 9
|
||||
3 9 NULL NULL NULL 20 7
|
||||
7 9 NULL NULL NULL 20 7
|
||||
3 9 NULL NULL NULL 5 9
|
||||
7 9 NULL NULL NULL 5 9
|
||||
3 9 NULL NULL NULL 5 7
|
||||
7 9 NULL NULL NULL 5 7
|
||||
18 9 NULL NULL NULL 20 9
|
||||
3 9 NULL NULL NULL 20 9
|
||||
18 9 NULL NULL NULL 20 7
|
||||
3 9 NULL NULL NULL 20 7
|
||||
18 9 NULL NULL NULL 5 9
|
||||
3 9 NULL NULL NULL 5 9
|
||||
18 9 NULL NULL NULL 5 7
|
||||
3 9 NULL NULL NULL 5 7
|
||||
7 9 NULL NULL NULL 20 9
|
||||
18 9 NULL NULL NULL 20 9
|
||||
7 9 NULL NULL NULL 20 7
|
||||
18 9 NULL NULL NULL 20 7
|
||||
18 9 NULL NULL NULL 20 9
|
||||
3 9 NULL NULL NULL 20 9
|
||||
3 9 NULL NULL NULL 5 9
|
||||
7 9 NULL NULL NULL 5 9
|
||||
18 9 NULL NULL NULL 5 9
|
||||
18 9 NULL NULL NULL 20 7
|
||||
3 9 NULL NULL NULL 20 7
|
||||
3 9 NULL NULL NULL 5 7
|
||||
7 9 NULL NULL NULL 5 7
|
||||
18 9 NULL NULL NULL 5 7
|
||||
3 9 NULL NULL NULL 5 9
|
||||
7 9 NULL NULL NULL 5 9
|
||||
18 9 NULL NULL NULL 5 9
|
||||
3 9 NULL NULL NULL 5 9
|
||||
7 9 NULL NULL NULL 20 9
|
||||
3 9 NULL NULL NULL 5 7
|
||||
7 9 NULL NULL NULL 5 7
|
||||
18 9 NULL NULL NULL 5 7
|
||||
3 9 NULL NULL NULL 5 7
|
||||
7 9 NULL NULL NULL 20 7
|
||||
18 9 NULL NULL NULL 20 9
|
||||
3 9 NULL NULL NULL 20 9
|
||||
7 9 NULL NULL NULL 20 9
|
||||
18 9 NULL NULL NULL 20 9
|
||||
7 9 NULL NULL NULL 5 9
|
||||
18 9 NULL NULL NULL 20 7
|
||||
3 9 NULL NULL NULL 20 7
|
||||
7 9 NULL NULL NULL 20 7
|
||||
18 9 NULL NULL NULL 20 7
|
||||
7 9 NULL NULL NULL 5 7
|
||||
18 9 NULL NULL NULL 5 9
|
||||
3 9 NULL NULL NULL 5 9
|
||||
7 9 NULL NULL NULL 5 9
|
||||
18 9 NULL NULL NULL 5 9
|
||||
18 9 NULL NULL NULL 5 7
|
||||
3 9 NULL NULL NULL 5 7
|
||||
7 9 NULL NULL NULL 5 7
|
||||
18 9 NULL NULL NULL 5 7
|
||||
SET SESSION join_buffer_size = DEFAULT;
|
||||
|
@ -6638,6 +6638,23 @@ a ( 3, 3 ) NOT IN ( SELECT NULL, NULL )
|
||||
set optimizer_switch=@mdev367_optimizer_switch;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-521 single value subselect transformation problem
|
||||
#
|
||||
CREATE TABLE t1 (f1 char(2), PRIMARY KEY (f1)) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES ('u1'),('u2');
|
||||
SELECT a.* FROM t1 a WHERE ( SELECT EXISTS ( SELECT 1 FROM t1 b WHERE b.f1 = a.f1 ) );
|
||||
f1
|
||||
u1
|
||||
u2
|
||||
FLUSH TABLES;
|
||||
SELECT a.* FROM t1 a WHERE ( SELECT EXISTS ( SELECT 1 FROM t1 b WHERE b.f1 = a.f1 ) );
|
||||
f1
|
||||
u1
|
||||
u2
|
||||
DROP TABLE t1;
|
||||
# return optimizer switch changed in the beginning of this test
|
||||
set optimizer_switch=@subselect_tmp;
|
||||
#
|
||||
# lp:944706 Query with impossible or constant subquery in WHERE or HAVING is not
|
||||
# precomputed and thus not part of optimization
|
||||
#
|
||||
|
@ -179,4 +179,23 @@ pk a b
|
||||
SET optimizer_switch=@tmp_optimizer_switch;
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1,t2,t3;
|
||||
#
|
||||
# MDEV-567: Wrong result from a query with correlated subquery if ICP is allowed
|
||||
#
|
||||
CREATE TABLE t1 (a int, b int, INDEX idx(a));
|
||||
INSERT INTO t1 VALUES (9,0), (7,1), (1,9), (7,3), (2,1);
|
||||
CREATE TABLE t2 (a int, b int, INDEX idx(a));
|
||||
INSERT INTO t2 VALUES (2,1), (6,4), (7,6), (9,4);
|
||||
CREATE TABLE t3 (a int, b int);
|
||||
INSERT INTO t3 VALUES (1,0), (1,1), (1,3);
|
||||
SELECT * FROM t3
|
||||
WHERE a = (SELECT COUNT(DISTINCT t2.b) FROM t1, t2
|
||||
WHERE t1.a = t2.a AND t2.a BETWEEN 7 AND 9
|
||||
AND t3.b = t1.b
|
||||
GROUP BY t1.b);
|
||||
a b
|
||||
1 0
|
||||
1 1
|
||||
1 3
|
||||
DROP TABLE t1, t2, t3;
|
||||
set optimizer_switch=@subselect2_test_tmp;
|
||||
|
@ -6637,6 +6637,23 @@ a ( 3, 3 ) NOT IN ( SELECT NULL, NULL )
|
||||
set optimizer_switch=@mdev367_optimizer_switch;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-521 single value subselect transformation problem
|
||||
#
|
||||
CREATE TABLE t1 (f1 char(2), PRIMARY KEY (f1)) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES ('u1'),('u2');
|
||||
SELECT a.* FROM t1 a WHERE ( SELECT EXISTS ( SELECT 1 FROM t1 b WHERE b.f1 = a.f1 ) );
|
||||
f1
|
||||
u1
|
||||
u2
|
||||
FLUSH TABLES;
|
||||
SELECT a.* FROM t1 a WHERE ( SELECT EXISTS ( SELECT 1 FROM t1 b WHERE b.f1 = a.f1 ) );
|
||||
f1
|
||||
u1
|
||||
u2
|
||||
DROP TABLE t1;
|
||||
# return optimizer switch changed in the beginning of this test
|
||||
set optimizer_switch=@subselect_tmp;
|
||||
#
|
||||
# lp:944706 Query with impossible or constant subquery in WHERE or HAVING is not
|
||||
# precomputed and thus not part of optimization
|
||||
#
|
||||
|
@ -6633,6 +6633,23 @@ a ( 3, 3 ) NOT IN ( SELECT NULL, NULL )
|
||||
set optimizer_switch=@mdev367_optimizer_switch;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-521 single value subselect transformation problem
|
||||
#
|
||||
CREATE TABLE t1 (f1 char(2), PRIMARY KEY (f1)) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES ('u1'),('u2');
|
||||
SELECT a.* FROM t1 a WHERE ( SELECT EXISTS ( SELECT 1 FROM t1 b WHERE b.f1 = a.f1 ) );
|
||||
f1
|
||||
u1
|
||||
u2
|
||||
FLUSH TABLES;
|
||||
SELECT a.* FROM t1 a WHERE ( SELECT EXISTS ( SELECT 1 FROM t1 b WHERE b.f1 = a.f1 ) );
|
||||
f1
|
||||
u1
|
||||
u2
|
||||
DROP TABLE t1;
|
||||
# return optimizer switch changed in the beginning of this test
|
||||
set optimizer_switch=@subselect_tmp;
|
||||
#
|
||||
# lp:944706 Query with impossible or constant subquery in WHERE or HAVING is not
|
||||
# precomputed and thus not part of optimization
|
||||
#
|
||||
|
@ -6644,6 +6644,23 @@ a ( 3, 3 ) NOT IN ( SELECT NULL, NULL )
|
||||
set optimizer_switch=@mdev367_optimizer_switch;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-521 single value subselect transformation problem
|
||||
#
|
||||
CREATE TABLE t1 (f1 char(2), PRIMARY KEY (f1)) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES ('u1'),('u2');
|
||||
SELECT a.* FROM t1 a WHERE ( SELECT EXISTS ( SELECT 1 FROM t1 b WHERE b.f1 = a.f1 ) );
|
||||
f1
|
||||
u1
|
||||
u2
|
||||
FLUSH TABLES;
|
||||
SELECT a.* FROM t1 a WHERE ( SELECT EXISTS ( SELECT 1 FROM t1 b WHERE b.f1 = a.f1 ) );
|
||||
f1
|
||||
u1
|
||||
u2
|
||||
DROP TABLE t1;
|
||||
# return optimizer switch changed in the beginning of this test
|
||||
set optimizer_switch=@subselect_tmp;
|
||||
#
|
||||
# lp:944706 Query with impossible or constant subquery in WHERE or HAVING is not
|
||||
# precomputed and thus not part of optimization
|
||||
#
|
||||
|
@ -6633,6 +6633,23 @@ a ( 3, 3 ) NOT IN ( SELECT NULL, NULL )
|
||||
set optimizer_switch=@mdev367_optimizer_switch;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-521 single value subselect transformation problem
|
||||
#
|
||||
CREATE TABLE t1 (f1 char(2), PRIMARY KEY (f1)) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES ('u1'),('u2');
|
||||
SELECT a.* FROM t1 a WHERE ( SELECT EXISTS ( SELECT 1 FROM t1 b WHERE b.f1 = a.f1 ) );
|
||||
f1
|
||||
u1
|
||||
u2
|
||||
FLUSH TABLES;
|
||||
SELECT a.* FROM t1 a WHERE ( SELECT EXISTS ( SELECT 1 FROM t1 b WHERE b.f1 = a.f1 ) );
|
||||
f1
|
||||
u1
|
||||
u2
|
||||
DROP TABLE t1;
|
||||
# return optimizer switch changed in the beginning of this test
|
||||
set optimizer_switch=@subselect_tmp;
|
||||
#
|
||||
# lp:944706 Query with impossible or constant subquery in WHERE or HAVING is not
|
||||
# precomputed and thus not part of optimization
|
||||
#
|
||||
|
@ -4530,6 +4530,55 @@ WHERE t4.a >= v1.a);
|
||||
a a
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1,t2,t3,t4;
|
||||
#
|
||||
# LP bug #823237: dependent subquery with LEFT JOIN
|
||||
# referencing view in WHERE
|
||||
# (duplicate of LP bug #823189)
|
||||
#
|
||||
CREATE TABLE t1 (a int);
|
||||
CREATE TABLE t2 ( b int, d int, e int);
|
||||
INSERT INTO t2 VALUES (7,8,0);
|
||||
CREATE TABLE t3 ( c int);
|
||||
INSERT INTO t3 VALUES (0);
|
||||
CREATE TABLE t4 (a int, b int, c int);
|
||||
INSERT INTO t4 VALUES (93,1,0), (95,NULL,0);
|
||||
CREATE VIEW v4 AS SELECT * FROM t4;
|
||||
EXPLAIN EXTENDED
|
||||
SELECT * FROM t3 , t4
|
||||
WHERE t4.c <= (SELECT t2.e FROM t2 LEFT JOIN t1 ON ( t1.a = t2.d )
|
||||
WHERE t2.b > t4.b);
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY t3 system NULL NULL NULL NULL 1 100.00
|
||||
1 PRIMARY t4 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
2 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 1 100.00
|
||||
2 DEPENDENT SUBQUERY t1 system NULL NULL NULL NULL 0 0.00 const row not found
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.t4.b' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select 0 AS `c`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t4`.`c` AS `c` from `test`.`t4` where (`test`.`t4`.`c` <= <expr_cache><`test`.`t4`.`b`>((select 0 from dual where (7 > `test`.`t4`.`b`))))
|
||||
SELECT * FROM t3 , t4
|
||||
WHERE t4.c <= (SELECT t2.e FROM t2 LEFT JOIN t1 ON ( t1.a = t2.d )
|
||||
WHERE t2.b > t4.b);
|
||||
c a b c
|
||||
0 93 1 0
|
||||
EXPLAIN EXTENDED
|
||||
SELECT * FROM t3, v4
|
||||
WHERE v4.c <= (SELECT t2.e FROM t2 LEFT JOIN t1 ON ( t1.a = t2.d )
|
||||
WHERE t2.b > v4.b);
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY t3 system NULL NULL NULL NULL 1 100.00
|
||||
1 PRIMARY t4 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
2 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 1 100.00
|
||||
2 DEPENDENT SUBQUERY t1 system NULL NULL NULL NULL 0 0.00 const row not found
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'v4.b' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select 0 AS `c`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t4`.`c` AS `c` from `test`.`t4` where (`test`.`t4`.`c` <= <expr_cache><`test`.`t4`.`b`>((select 0 from dual where (7 > `test`.`t4`.`b`))))
|
||||
SELECT * FROM t3, v4
|
||||
WHERE v4.c <= (SELECT t2.e FROM t2 LEFT JOIN t1 ON ( t1.a = t2.d )
|
||||
WHERE t2.b > v4.b);
|
||||
c a b c
|
||||
0 93 1 0
|
||||
DROP VIEW v4;
|
||||
DROP TABLE t1,t2,t3,t4;
|
||||
drop table if exists t_9801;
|
||||
drop view if exists v_9801;
|
||||
create table t_9801 (s1 int);
|
||||
@ -4730,6 +4779,49 @@ id id bbb iddqd val1
|
||||
30631 NULL NULL NULL NULL
|
||||
drop view v2;
|
||||
drop table t1,t2;
|
||||
#
|
||||
# MDEV-589 (LP BUG#1007647) :
|
||||
# Assertion `vcol_table == 0 || vcol_table == table' failed in
|
||||
# fill_record(THD*, List<Item>&, List<Item>&, bool)
|
||||
#
|
||||
CREATE TABLE t1 (f1 INT, f2 INT);
|
||||
CREATE TABLE t2 (f1 INT, f2 INT);
|
||||
CREATE ALGORITHM=MERGE VIEW v1 AS SELECT a1.f1, a2.f2 FROM t1 AS a1, t1 AS a2;
|
||||
CREATE ALGORITHM=MERGE VIEW v2 AS SELECT * FROM v1;
|
||||
CREATE ALGORITHM=MERGE VIEW v3 AS SELECT a1.f1, a2.f2 FROM t1 AS a1, t2 AS a2;
|
||||
CREATE ALGORITHM=MERGE VIEW v4 AS SELECT * FROM v3;
|
||||
INSERT INTO v3 (f1, f2) VALUES (1, 2);
|
||||
ERROR HY000: Can not modify more than one base table through a join view 'test.v3'
|
||||
INSERT INTO v1 (f1, f2) VALUES (1, 2);
|
||||
ERROR HY000: Can not modify more than one base table through a join view 'test.v1'
|
||||
INSERT INTO v4 (f1, f2) VALUES (1, 2);
|
||||
ERROR HY000: Can not modify more than one base table through a join view 'test.v4'
|
||||
INSERT INTO v2 (f1, f2) VALUES (1, 2);
|
||||
ERROR HY000: Can not modify more than one base table through a join view 'test.v2'
|
||||
drop view v4,v3,v2,v1;
|
||||
drop table t1,t2;
|
||||
#
|
||||
# MDEV-3799 fix of above bugfix (MDEV-589)
|
||||
# Wrong result (NULLs instead of real values) with RIGHT JOIN
|
||||
# in a FROM subquery and derived_merge=on
|
||||
#
|
||||
CREATE TABLE t1 (f1 INT) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES (4),(6);
|
||||
CREATE TABLE t2 (f2 INT) ENGINE=MyISAM;
|
||||
INSERT INTO t2 VALUES (7),(8);
|
||||
SELECT * FROM (
|
||||
SELECT * FROM t1 RIGHT JOIN t2 ON f1 = f2
|
||||
) AS alias;
|
||||
f1 f2
|
||||
NULL 7
|
||||
NULL 8
|
||||
SELECT * FROM (
|
||||
SELECT * FROM t2 LEFT JOIN t1 ON f1 = f2
|
||||
) AS alias;
|
||||
f2 f1
|
||||
7 NULL
|
||||
8 NULL
|
||||
drop tables t1,t2;
|
||||
# -----------------------------------------------------------------
|
||||
# -- End of 5.3 tests.
|
||||
# -----------------------------------------------------------------
|
||||
|
@ -4,7 +4,7 @@ create user pam_test;
|
||||
grant proxy on pam_test to test_pam;
|
||||
#
|
||||
# athentication is successful, challenge/pin are ok
|
||||
# note that current_user() differts from user()
|
||||
# note that current_user() differs from user()
|
||||
#
|
||||
Challenge input first.
|
||||
Enter: not very secret challenge
|
||||
|
@ -26,7 +26,7 @@ EOF
|
||||
|
||||
--echo #
|
||||
--echo # athentication is successful, challenge/pin are ok
|
||||
--echo # note that current_user() differts from user()
|
||||
--echo # note that current_user() differs from user()
|
||||
--echo #
|
||||
--exec $MYSQL_TEST -u test_pam --plugin-dir=$plugindir < $MYSQLTEST_VARDIR/tmp/pam_good.txt
|
||||
|
||||
|
49
mysql-test/suite/sys_vars/r/ignore_db_dirs_basic.result
Normal file
49
mysql-test/suite/sys_vars/r/ignore_db_dirs_basic.result
Normal file
@ -0,0 +1,49 @@
|
||||
select @@ignore_db_dirs;
|
||||
@@ignore_db_dirs
|
||||
e,lost+found,.mysqlgui,ignored_db
|
||||
# Check that SHOW DATABASES ignores all directories from
|
||||
# @@ignore_db_dirs and all directories with names starting
|
||||
# with '.'
|
||||
SHOW DATABASES;
|
||||
Database
|
||||
information_schema
|
||||
#mysql50#.otherdir
|
||||
mtr
|
||||
mysql
|
||||
performance_schema
|
||||
test
|
||||
USE ignored_db;
|
||||
ERROR 42000: Incorrect database name 'ignored_db'
|
||||
SELECT * FROM ignored_db.t1;
|
||||
ERROR 42000: Incorrect database name 'ignored_db'
|
||||
CALL ignored_db.p1();
|
||||
ERROR 42000: Incorrect database name 'ignored_db'
|
||||
SELECT COUNT(*) FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME='ignored_db';
|
||||
COUNT(*)
|
||||
1
|
||||
CREATE DATABASE ignored_db;
|
||||
ERROR 42000: Incorrect database name 'ignored_db'
|
||||
CREATE DATABASE `lost+found`;
|
||||
USE `lost+found`;
|
||||
CREATE TABLE t1(id INT);
|
||||
INSERT INTO t1 VALUES (1), (2);
|
||||
SELECT * FROM `lost+found`.t1;
|
||||
id
|
||||
1
|
||||
2
|
||||
SHOW DATABASES;
|
||||
Database
|
||||
information_schema
|
||||
#mysql50#.otherdir
|
||||
lost+found
|
||||
mtr
|
||||
mysql
|
||||
performance_schema
|
||||
test
|
||||
DROP DATABASE `lost+found`;
|
||||
SET @@global.ignore_db_dirs = 'aha';
|
||||
ERROR HY000: Variable 'ignore_db_dirs' is a read only variable
|
||||
SET @@local.ignore_db_dirs = 'aha';
|
||||
ERROR HY000: Variable 'ignore_db_dirs' is a read only variable
|
||||
SET @@ignore_db_dirs = 'aha';
|
||||
ERROR HY000: Variable 'ignore_db_dirs' is a read only variable
|
11
mysql-test/suite/sys_vars/t/ignore_db_dirs_basic-master.opt
Normal file
11
mysql-test/suite/sys_vars/t/ignore_db_dirs_basic-master.opt
Normal file
@ -0,0 +1,11 @@
|
||||
--ignore-db-dir=a
|
||||
--ignore-db-dir=b
|
||||
--ignore-db-dir=c
|
||||
--ignore-db-dir=
|
||||
--ignore-db-dir=d
|
||||
--ignore-db-dir x
|
||||
--ignore-db-dir=
|
||||
--ignore-db-dir=e
|
||||
--ignore-db-dir=lost+found
|
||||
--ignore-db-dir=.mysqlgui
|
||||
--ignore-db-dir=ignored_db
|
38
mysql-test/suite/sys_vars/t/ignore_db_dirs_basic.test
Normal file
38
mysql-test/suite/sys_vars/t/ignore_db_dirs_basic.test
Normal file
@ -0,0 +1,38 @@
|
||||
select @@ignore_db_dirs;
|
||||
let $MYSQLD_DATADIR= `select @@datadir`;
|
||||
|
||||
mkdir $MYSQLD_DATADIR/.mysqlgui;
|
||||
mkdir $MYSQLD_DATADIR/.otherdir;
|
||||
mkdir $MYSQLD_DATADIR/lost+found;
|
||||
mkdir $MYSQLD_DATADIR/ignored_db;
|
||||
--echo # Check that SHOW DATABASES ignores all directories from
|
||||
--echo # @@ignore_db_dirs and all directories with names starting
|
||||
--echo # with '.'
|
||||
SHOW DATABASES;
|
||||
--error ER_WRONG_DB_NAME
|
||||
USE ignored_db;
|
||||
--error ER_WRONG_DB_NAME
|
||||
SELECT * FROM ignored_db.t1;
|
||||
--error ER_WRONG_DB_NAME
|
||||
CALL ignored_db.p1();
|
||||
SELECT COUNT(*) FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME='ignored_db';
|
||||
--error ER_WRONG_DB_NAME
|
||||
CREATE DATABASE ignored_db;
|
||||
CREATE DATABASE `lost+found`;
|
||||
USE `lost+found`;
|
||||
CREATE TABLE t1(id INT);
|
||||
INSERT INTO t1 VALUES (1), (2);
|
||||
SELECT * FROM `lost+found`.t1;
|
||||
SHOW DATABASES;
|
||||
DROP DATABASE `lost+found`;
|
||||
rmdir $MYSQLD_DATADIR/.mysqlgui;
|
||||
rmdir $MYSQLD_DATADIR/.otherdir;
|
||||
rmdir $MYSQLD_DATADIR/lost+found;
|
||||
rmdir $MYSQLD_DATADIR/ignored_db;
|
||||
|
||||
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
|
||||
SET @@global.ignore_db_dirs = 'aha';
|
||||
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
|
||||
SET @@local.ignore_db_dirs = 'aha';
|
||||
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
|
||||
SET @@ignore_db_dirs = 'aha';
|
@ -3587,5 +3587,54 @@ set optimizer_switch=@tmp_optimizer_switch;
|
||||
|
||||
DROP TABLE t1,t2,t3;
|
||||
|
||||
--echo #
|
||||
--echo # Bug #1058071: LEFT JOIN using blobs
|
||||
--echo # (mdev-564) when join buffer size is small
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (
|
||||
col269 decimal(31,10) unsigned DEFAULT NULL,
|
||||
col280 multipoint DEFAULT NULL,
|
||||
col281 tinyint(1) DEFAULT NULL,
|
||||
col282 time NOT NULL,
|
||||
col284 datetime DEFAULT NULL,
|
||||
col286 date DEFAULT NULL,
|
||||
col287 datetime DEFAULT NULL,
|
||||
col288 decimal(30,29) DEFAULT NULL,
|
||||
col291 time DEFAULT NULL,
|
||||
col292 time DEFAULT NULL
|
||||
) ENGINE=Aria;
|
||||
|
||||
INSERT INTO t1 VALUES
|
||||
(0.0,PointFromText('POINT(9 0)'),0,'11:24:05','2013-04-14 21:30:28',NULL,'2011-12-20 06:00:34',9.9,'13:04:39',NULL),
|
||||
(0.0,NULL,127,'05:43:12','2012-09-05 06:15:27','2027-01-01','2011-10-29 10:48:29',0.0,'06:24:05','11:33:37'),
|
||||
(0.0,NULL,127,'12:54:41','2013-01-12 11:32:58','2011-11-03','2013-01-03 02:00:34',00,'11:54:15','20:19:15'),
|
||||
(0.0,PointFromText('POINT(9 0)'),0,'19:48:07','2012-07-16 15:45:25','2012-03-25','2013-09-07 17:21:52',0.5,'17:36:54','21:24:19'),
|
||||
(0.0,PointFromText('POINT(9 0)'),0,'03:43:48','2012-09-28 00:00:00','2012-06-26','2011-11-16 05:01:09',00,'01:25:42','19:30:06'),
|
||||
(0.0,LineStringFromText('LINESTRING(0 0,9 9,0 0,9 0,0 0)'),127,'11:33:21','2012-03-31 10:29:22','2012-10-10','2012-04-21 19:21:06',NULL,'05:13:22','09:48:34'),
|
||||
(NULL,PointFromText('POINT(9 0)'),127,'00:00:00','0000-00-00','2012-04-04 21:26:12','2013-03-04',0.0,'12:54:30',NULL),
|
||||
(NULL,PointFromText('POINT(9 0)'),1,'00:00:00','2013-05-01 22:37:49','2013-06-26','2012-09-22 17:31:03',0.0,'08:09:57','11:15:36');
|
||||
|
||||
CREATE TABLE t2 (b int) ENGINE=Aria;
|
||||
INSERT INTO t2 VALUES (NULL);
|
||||
CREATE TABLE t3 (c int) ENGINE=Aria;
|
||||
INSERT INTO t3 VALUES (NULL);
|
||||
|
||||
set @tmp_optimizer_switch=@@optimizer_switch;
|
||||
set optimizer_switch = 'outer_join_with_cache=on,join_cache_incremental=on';
|
||||
set join_buffer_size=128;
|
||||
|
||||
EXPLAIN
|
||||
SELECT 1 AS c FROM t1 NATURAL LEFT JOIN t2 LEFT OUTER JOIN t3 ON 1
|
||||
GROUP BY elt(t1.col282,1,t1.col280);
|
||||
|
||||
SELECT 1 AS c FROM t1 NATURAL LEFT JOIN t2 LEFT OUTER JOIN t3 ON 1
|
||||
GROUP BY elt(t1.col282,1,t1.col280);
|
||||
|
||||
set join_buffer_size=default;
|
||||
set optimizer_switch=@tmp_optimizer_switch;
|
||||
|
||||
DROP table t1,t2,t3;
|
||||
|
||||
# this must be the last command in the file
|
||||
set @@optimizer_switch=@save_optimizer_switch;
|
||||
|
@ -4174,7 +4174,7 @@ INSERT INTO t5 VALUES (20),(5);
|
||||
CREATE TABLE t6(f1 int);
|
||||
INSERT INTO t6 VALUES (9),(7);
|
||||
|
||||
SET SESSION join_buffer_size = 2048;
|
||||
SET SESSION join_buffer_size = 2176;
|
||||
|
||||
EXPLAIN
|
||||
SELECT STRAIGHT_JOIN * FROM t2, (t1 LEFT JOIN (t3,t4) ON t1.f1 = t4.f1), t5, t6;
|
||||
|
@ -5596,6 +5596,22 @@ set optimizer_switch=@mdev367_optimizer_switch;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-521 single value subselect transformation problem
|
||||
--echo #
|
||||
CREATE TABLE t1 (f1 char(2), PRIMARY KEY (f1)) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES ('u1'),('u2');
|
||||
|
||||
SELECT a.* FROM t1 a WHERE ( SELECT EXISTS ( SELECT 1 FROM t1 b WHERE b.f1 = a.f1 ) );
|
||||
FLUSH TABLES;
|
||||
SELECT a.* FROM t1 a WHERE ( SELECT EXISTS ( SELECT 1 FROM t1 b WHERE b.f1 = a.f1 ) );
|
||||
|
||||
# Cleanup
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo # return optimizer switch changed in the beginning of this test
|
||||
set optimizer_switch=@subselect_tmp;
|
||||
|
||||
--echo #
|
||||
--echo # lp:944706 Query with impossible or constant subquery in WHERE or HAVING is not
|
||||
--echo # precomputed and thus not part of optimization
|
||||
|
@ -203,5 +203,24 @@ SET optimizer_switch=@tmp_optimizer_switch;
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1,t2,t3;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-567: Wrong result from a query with correlated subquery if ICP is allowed
|
||||
--echo #
|
||||
CREATE TABLE t1 (a int, b int, INDEX idx(a));
|
||||
INSERT INTO t1 VALUES (9,0), (7,1), (1,9), (7,3), (2,1);
|
||||
|
||||
CREATE TABLE t2 (a int, b int, INDEX idx(a));
|
||||
INSERT INTO t2 VALUES (2,1), (6,4), (7,6), (9,4);
|
||||
|
||||
CREATE TABLE t3 (a int, b int);
|
||||
INSERT INTO t3 VALUES (1,0), (1,1), (1,3);
|
||||
|
||||
SELECT * FROM t3
|
||||
WHERE a = (SELECT COUNT(DISTINCT t2.b) FROM t1, t2
|
||||
WHERE t1.a = t2.a AND t2.a BETWEEN 7 AND 9
|
||||
AND t3.b = t1.b
|
||||
GROUP BY t1.b);
|
||||
DROP TABLE t1, t2, t3;
|
||||
|
||||
set optimizer_switch=@subselect2_test_tmp;
|
||||
|
||||
|
@ -4381,6 +4381,46 @@ SELECT * FROM v1, t2
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1,t2,t3,t4;
|
||||
|
||||
--echo #
|
||||
--echo # LP bug #823237: dependent subquery with LEFT JOIN
|
||||
--echo # referencing view in WHERE
|
||||
--echo # (duplicate of LP bug #823189)
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (a int);
|
||||
|
||||
CREATE TABLE t2 ( b int, d int, e int);
|
||||
INSERT INTO t2 VALUES (7,8,0);
|
||||
|
||||
CREATE TABLE t3 ( c int);
|
||||
INSERT INTO t3 VALUES (0);
|
||||
|
||||
CREATE TABLE t4 (a int, b int, c int);
|
||||
INSERT INTO t4 VALUES (93,1,0), (95,NULL,0);
|
||||
|
||||
CREATE VIEW v4 AS SELECT * FROM t4;
|
||||
|
||||
EXPLAIN EXTENDED
|
||||
SELECT * FROM t3 , t4
|
||||
WHERE t4.c <= (SELECT t2.e FROM t2 LEFT JOIN t1 ON ( t1.a = t2.d )
|
||||
WHERE t2.b > t4.b);
|
||||
SELECT * FROM t3 , t4
|
||||
WHERE t4.c <= (SELECT t2.e FROM t2 LEFT JOIN t1 ON ( t1.a = t2.d )
|
||||
WHERE t2.b > t4.b);
|
||||
|
||||
|
||||
EXPLAIN EXTENDED
|
||||
SELECT * FROM t3, v4
|
||||
WHERE v4.c <= (SELECT t2.e FROM t2 LEFT JOIN t1 ON ( t1.a = t2.d )
|
||||
WHERE t2.b > v4.b);
|
||||
|
||||
SELECT * FROM t3, v4
|
||||
WHERE v4.c <= (SELECT t2.e FROM t2 LEFT JOIN t1 ON ( t1.a = t2.d )
|
||||
WHERE t2.b > v4.b);
|
||||
|
||||
DROP VIEW v4;
|
||||
DROP TABLE t1,t2,t3,t4;
|
||||
|
||||
#
|
||||
# Bug#9801 (Views: imperfect error message)
|
||||
#
|
||||
@ -4661,6 +4701,52 @@ create algorithm=MERGE view v2 as select 2 as id, id is null as bbb, id as iddqd
|
||||
select t1.*, v2.* from t1 left join v2 on t1.id = v2.id;
|
||||
drop view v2;
|
||||
drop table t1,t2;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-589 (LP BUG#1007647) :
|
||||
--echo # Assertion `vcol_table == 0 || vcol_table == table' failed in
|
||||
--echo # fill_record(THD*, List<Item>&, List<Item>&, bool)
|
||||
--echo #
|
||||
CREATE TABLE t1 (f1 INT, f2 INT);
|
||||
CREATE TABLE t2 (f1 INT, f2 INT);
|
||||
CREATE ALGORITHM=MERGE VIEW v1 AS SELECT a1.f1, a2.f2 FROM t1 AS a1, t1 AS a2;
|
||||
CREATE ALGORITHM=MERGE VIEW v2 AS SELECT * FROM v1;
|
||||
CREATE ALGORITHM=MERGE VIEW v3 AS SELECT a1.f1, a2.f2 FROM t1 AS a1, t2 AS a2;
|
||||
CREATE ALGORITHM=MERGE VIEW v4 AS SELECT * FROM v3;
|
||||
--error ER_VIEW_MULTIUPDATE
|
||||
INSERT INTO v3 (f1, f2) VALUES (1, 2);
|
||||
--error ER_VIEW_MULTIUPDATE
|
||||
INSERT INTO v1 (f1, f2) VALUES (1, 2);
|
||||
--error ER_VIEW_MULTIUPDATE
|
||||
INSERT INTO v4 (f1, f2) VALUES (1, 2);
|
||||
--error ER_VIEW_MULTIUPDATE
|
||||
INSERT INTO v2 (f1, f2) VALUES (1, 2);
|
||||
drop view v4,v3,v2,v1;
|
||||
drop table t1,t2;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-3799 fix of above bugfix (MDEV-589)
|
||||
--echo # Wrong result (NULLs instead of real values) with RIGHT JOIN
|
||||
--echo # in a FROM subquery and derived_merge=on
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (f1 INT) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES (4),(6);
|
||||
|
||||
CREATE TABLE t2 (f2 INT) ENGINE=MyISAM;
|
||||
INSERT INTO t2 VALUES (7),(8);
|
||||
|
||||
SELECT * FROM (
|
||||
SELECT * FROM t1 RIGHT JOIN t2 ON f1 = f2
|
||||
) AS alias;
|
||||
|
||||
SELECT * FROM (
|
||||
SELECT * FROM t2 LEFT JOIN t1 ON f1 = f2
|
||||
) AS alias;
|
||||
|
||||
drop tables t1,t2;
|
||||
|
||||
|
||||
--echo # -----------------------------------------------------------------
|
||||
--echo # -- End of 5.3 tests.
|
||||
--echo # -----------------------------------------------------------------
|
||||
|
Reference in New Issue
Block a user