mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
MWL#89 - automatic merge with 5.3
This commit is contained in:
@ -2412,7 +2412,7 @@ EXPLAIN SELECT 1 FROM t1 AS t1_outer1 JOIN t1 AS t1_outer2
|
|||||||
ON t1_outer1.a = (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2)
|
ON t1_outer1.a = (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2)
|
||||||
AND t1_outer1.b = t1_outer2.b;
|
AND t1_outer1.b = t1_outer2.b;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1_outer1 ref a a 5 const 1 Using where; Using index
|
1 PRIMARY t1_outer1 ref a a 5 const 1 Using index
|
||||||
1 PRIMARY t1_outer2 index NULL a 10 NULL 15 Using where; Using index; Using join buffer (flat, BNL join)
|
1 PRIMARY t1_outer2 index NULL a 10 NULL 15 Using where; Using index; Using join buffer (flat, BNL join)
|
||||||
2 SUBQUERY t1 range NULL a 5 NULL 8 Using index for group-by
|
2 SUBQUERY t1 range NULL a 5 NULL 8 Using index for group-by
|
||||||
EXPLAIN SELECT (SELECT (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2) x
|
EXPLAIN SELECT (SELECT (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2) x
|
||||||
|
@ -370,7 +370,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
2 SUBQUERY t8 const PRIMARY PRIMARY 37 const 1 100.00
|
2 SUBQUERY t8 const PRIMARY PRIMARY 37 const 1 100.00
|
||||||
3 SUBQUERY t8 const PRIMARY PRIMARY 37 1 100.00 Using index
|
3 SUBQUERY t8 const PRIMARY PRIMARY 37 1 100.00 Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select 'joce' AS `pseudo`,(select 'test' from `test`.`t8` where 1) AS `(SELECT email FROM t8 WHERE pseudo=(SELECT pseudo FROM t8 WHERE pseudo='joce'))` from `test`.`t8` where 1
|
Note 1003 select 'joce' AS `pseudo`,(select 'test' from `test`.`t8` where ('joce' = (select 'joce' from `test`.`t8` where 1))) AS `(SELECT email FROM t8 WHERE pseudo=(SELECT pseudo FROM t8 WHERE pseudo='joce'))` from `test`.`t8` where ('joce' = (select 'joce' from `test`.`t8` where 1))
|
||||||
SELECT pseudo FROM t8 WHERE pseudo=(SELECT pseudo,email FROM
|
SELECT pseudo FROM t8 WHERE pseudo=(SELECT pseudo,email FROM
|
||||||
t8 WHERE pseudo='joce');
|
t8 WHERE pseudo='joce');
|
||||||
ERROR 21000: Operand should contain 1 column(s)
|
ERROR 21000: Operand should contain 1 column(s)
|
||||||
@ -552,7 +552,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 const PRIMARY,numreponse PRIMARY 7 const,const 1 100.00 Using index
|
1 PRIMARY t1 const PRIMARY,numreponse PRIMARY 7 const,const 1 100.00 Using index
|
||||||
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select '3' AS `numreponse` from `test`.`t1` where (('1' = '1'))
|
Note 1003 select '3' AS `numreponse` from `test`.`t1` where (('1' = '1') and ('3' = 3))
|
||||||
drop table t1;
|
drop table t1;
|
||||||
CREATE TABLE t1 (a int(1));
|
CREATE TABLE t1 (a int(1));
|
||||||
INSERT INTO t1 VALUES (1);
|
INSERT INTO t1 VALUES (1);
|
||||||
|
@ -1317,7 +1317,7 @@ EXPLAIN
|
|||||||
SELECT i FROM t1 WHERE (1) NOT IN (SELECT i FROM t2);
|
SELECT i FROM t1 WHERE (1) NOT IN (SELECT i FROM t2);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 system NULL NULL NULL NULL 1
|
1 PRIMARY t1 system NULL NULL NULL NULL 1
|
||||||
2 DEPENDENT SUBQUERY t2 ref_or_null k k 5 const 2 Using where; Using index
|
2 DEPENDENT SUBQUERY t2 index_subquery k k 5 const 2 Using index
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
#
|
#
|
||||||
@ -1743,3 +1743,42 @@ SELECT f2 FROM t1 WHERE ( f2 ) IN ( SELECT t3.f2 FROM t3 JOIN t2 ON t2.f1 = 1 )
|
|||||||
)
|
)
|
||||||
NULL
|
NULL
|
||||||
drop table t1, t2, t3;
|
drop table t1, t2, t3;
|
||||||
|
#
|
||||||
|
# LP BUG#777597 Wrong result with multipart keys, in_to_exists=on, NOT IN in MWL#89
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 ( f4 int);
|
||||||
|
INSERT IGNORE INTO t1 VALUES (2),(2);
|
||||||
|
CREATE TABLE t2 ( f3 int, f10 int, KEY (f10,f3) );
|
||||||
|
INSERT IGNORE INTO t2 VALUES (6, 1), (6, 1);
|
||||||
|
CREATE TABLE t3 ( f10 int );
|
||||||
|
INSERT IGNORE INTO t3 VALUES (1);
|
||||||
|
SET SESSION optimizer_switch='in_to_exists=on,materialization=off';
|
||||||
|
EXPLAIN
|
||||||
|
SELECT * FROM t1 WHERE ( 6 ) NOT IN ( SELECT t2.f3 FROM t2 JOIN t3 ON t3.f10 = t2.f10);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2
|
||||||
|
2 DEPENDENT SUBQUERY t3 system NULL NULL NULL NULL 1
|
||||||
|
2 DEPENDENT SUBQUERY t2 ref_or_null f10 f10 10 const,const 2 Using where; Using index
|
||||||
|
SELECT * FROM t1 WHERE ( 6 ) NOT IN ( SELECT t2.f3 FROM t2 JOIN t3 ON t3.f10 = t2.f10);
|
||||||
|
f4
|
||||||
|
drop table t1,t2,t3;
|
||||||
|
#
|
||||||
|
# LP BUG#778413 Third crash in select_describe() in maria-5.3-mwl89
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 ( f11 int) ;
|
||||||
|
INSERT INTO t1 VALUES (1),(1);
|
||||||
|
CREATE TABLE t2 ( f1 int NOT NULL) ;
|
||||||
|
INSERT INTO t2 VALUES (20);
|
||||||
|
CREATE TABLE t3 (f3 int) ;
|
||||||
|
INSERT INTO t3 VALUES (2),(2);
|
||||||
|
EXPLAIN SELECT * FROM t2
|
||||||
|
WHERE t2.f1 = (
|
||||||
|
SELECT MAX( f3 ) FROM t3
|
||||||
|
WHERE EXISTS (
|
||||||
|
SELECT DISTINCT f11
|
||||||
|
FROM t1));
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY t2 system NULL NULL NULL NULL 1
|
||||||
|
2 SUBQUERY t3 ALL NULL NULL NULL NULL 2
|
||||||
|
3 SUBQUERY t1 ALL NULL NULL NULL NULL 2 Using temporary
|
||||||
|
drop table t1, t2, t3;
|
||||||
|
@ -1395,7 +1395,7 @@ SELECT * FROM t2 WHERE (SELECT f3a FROM t3) NOT IN (SELECT f1a FROM t1);
|
|||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t2 ALL NULL NULL NULL NULL 2
|
1 PRIMARY t2 ALL NULL NULL NULL NULL 2
|
||||||
3 SUBQUERY t1 ALL NULL NULL NULL NULL 2
|
3 SUBQUERY t1 ALL NULL NULL NULL NULL 2
|
||||||
2 SUBQUERY t3 system NULL NULL NULL NULL 0 const row not found
|
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL no matching row in const table
|
||||||
SELECT * FROM t2 WHERE (SELECT f3a FROM t3) NOT IN (SELECT f1a FROM t1);
|
SELECT * FROM t2 WHERE (SELECT f3a FROM t3) NOT IN (SELECT f1a FROM t1);
|
||||||
f2
|
f2
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
@ -1403,7 +1403,7 @@ SELECT (SELECT f3a FROM t3) NOT IN (SELECT f1a FROM t1);
|
|||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||||
3 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 2 Using where
|
3 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 2 Using where
|
||||||
2 SUBQUERY t3 system NULL NULL NULL NULL 0 const row not found
|
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL no matching row in const table
|
||||||
SELECT (SELECT f3a FROM t3) NOT IN (SELECT f1a FROM t1);
|
SELECT (SELECT f3a FROM t3) NOT IN (SELECT f1a FROM t1);
|
||||||
(SELECT f3a FROM t3) NOT IN (SELECT f1a FROM t1)
|
(SELECT f3a FROM t3) NOT IN (SELECT f1a FROM t1)
|
||||||
NULL
|
NULL
|
||||||
@ -1412,7 +1412,7 @@ SELECT * FROM t2 WHERE (SELECT f3a, f3b FROM t3) NOT IN (SELECT f1a, f1b FROM t1
|
|||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t2 ALL NULL NULL NULL NULL 2
|
1 PRIMARY t2 ALL NULL NULL NULL NULL 2
|
||||||
3 SUBQUERY t1 ALL NULL NULL NULL NULL 2
|
3 SUBQUERY t1 ALL NULL NULL NULL NULL 2
|
||||||
2 SUBQUERY t3 system NULL NULL NULL NULL 0 const row not found
|
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL no matching row in const table
|
||||||
SELECT * FROM t2 WHERE (SELECT f3a, f3b FROM t3) NOT IN (SELECT f1a, f1b FROM t1);
|
SELECT * FROM t2 WHERE (SELECT f3a, f3b FROM t3) NOT IN (SELECT f1a, f1b FROM t1);
|
||||||
f2
|
f2
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
@ -1420,7 +1420,7 @@ SELECT (SELECT f3a, f3b FROM t3) NOT IN (SELECT f1a, f1b FROM t1);
|
|||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||||
3 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 2 Using where
|
3 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 2 Using where
|
||||||
2 SUBQUERY t3 system NULL NULL NULL NULL 0 const row not found
|
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL no matching row in const table
|
||||||
SELECT (SELECT f3a, f3b FROM t3) NOT IN (SELECT f1a, f1b FROM t1);
|
SELECT (SELECT f3a, f3b FROM t3) NOT IN (SELECT f1a, f1b FROM t1);
|
||||||
(SELECT f3a, f3b FROM t3) NOT IN (SELECT f1a, f1b FROM t1)
|
(SELECT f3a, f3b FROM t3) NOT IN (SELECT f1a, f1b FROM t1)
|
||||||
NULL
|
NULL
|
||||||
|
@ -374,7 +374,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
2 SUBQUERY t8 const PRIMARY PRIMARY 37 const 1 100.00
|
2 SUBQUERY t8 const PRIMARY PRIMARY 37 const 1 100.00
|
||||||
3 SUBQUERY t8 const PRIMARY PRIMARY 37 1 100.00 Using index
|
3 SUBQUERY t8 const PRIMARY PRIMARY 37 1 100.00 Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select 'joce' AS `pseudo`,(select 'test' from `test`.`t8` where 1) AS `(SELECT email FROM t8 WHERE pseudo=(SELECT pseudo FROM t8 WHERE pseudo='joce'))` from `test`.`t8` where 1
|
Note 1003 select 'joce' AS `pseudo`,(select 'test' from `test`.`t8` where ('joce' = (select 'joce' from `test`.`t8` where 1))) AS `(SELECT email FROM t8 WHERE pseudo=(SELECT pseudo FROM t8 WHERE pseudo='joce'))` from `test`.`t8` where ('joce' = (select 'joce' from `test`.`t8` where 1))
|
||||||
SELECT pseudo FROM t8 WHERE pseudo=(SELECT pseudo,email FROM
|
SELECT pseudo FROM t8 WHERE pseudo=(SELECT pseudo,email FROM
|
||||||
t8 WHERE pseudo='joce');
|
t8 WHERE pseudo='joce');
|
||||||
ERROR 21000: Operand should contain 1 column(s)
|
ERROR 21000: Operand should contain 1 column(s)
|
||||||
@ -556,7 +556,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 const PRIMARY,numreponse PRIMARY 7 const,const 1 100.00 Using index
|
1 PRIMARY t1 const PRIMARY,numreponse PRIMARY 7 const,const 1 100.00 Using index
|
||||||
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select '3' AS `numreponse` from `test`.`t1` where (('1' = '1'))
|
Note 1003 select '3' AS `numreponse` from `test`.`t1` where (('1' = '1') and ('3' = 3))
|
||||||
drop table t1;
|
drop table t1;
|
||||||
CREATE TABLE t1 (a int(1));
|
CREATE TABLE t1 (a int(1));
|
||||||
INSERT INTO t1 VALUES (1);
|
INSERT INTO t1 VALUES (1);
|
||||||
|
@ -371,7 +371,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
2 SUBQUERY t8 const PRIMARY PRIMARY 37 const 1 100.00
|
2 SUBQUERY t8 const PRIMARY PRIMARY 37 const 1 100.00
|
||||||
3 SUBQUERY t8 const PRIMARY PRIMARY 37 1 100.00 Using index
|
3 SUBQUERY t8 const PRIMARY PRIMARY 37 1 100.00 Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select 'joce' AS `pseudo`,(select 'test' from `test`.`t8` where 1) AS `(SELECT email FROM t8 WHERE pseudo=(SELECT pseudo FROM t8 WHERE pseudo='joce'))` from `test`.`t8` where 1
|
Note 1003 select 'joce' AS `pseudo`,(select 'test' from `test`.`t8` where ('joce' = (select 'joce' from `test`.`t8` where 1))) AS `(SELECT email FROM t8 WHERE pseudo=(SELECT pseudo FROM t8 WHERE pseudo='joce'))` from `test`.`t8` where ('joce' = (select 'joce' from `test`.`t8` where 1))
|
||||||
SELECT pseudo FROM t8 WHERE pseudo=(SELECT pseudo,email FROM
|
SELECT pseudo FROM t8 WHERE pseudo=(SELECT pseudo,email FROM
|
||||||
t8 WHERE pseudo='joce');
|
t8 WHERE pseudo='joce');
|
||||||
ERROR 21000: Operand should contain 1 column(s)
|
ERROR 21000: Operand should contain 1 column(s)
|
||||||
@ -553,7 +553,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 const PRIMARY,numreponse PRIMARY 7 const,const 1 100.00 Using index
|
1 PRIMARY t1 const PRIMARY,numreponse PRIMARY 7 const,const 1 100.00 Using index
|
||||||
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select '3' AS `numreponse` from `test`.`t1` where (('1' = '1'))
|
Note 1003 select '3' AS `numreponse` from `test`.`t1` where (('1' = '1') and ('3' = 3))
|
||||||
drop table t1;
|
drop table t1;
|
||||||
CREATE TABLE t1 (a int(1));
|
CREATE TABLE t1 (a int(1));
|
||||||
INSERT INTO t1 VALUES (1);
|
INSERT INTO t1 VALUES (1);
|
||||||
|
@ -371,7 +371,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
2 SUBQUERY t8 const PRIMARY PRIMARY 37 const 1 100.00
|
2 SUBQUERY t8 const PRIMARY PRIMARY 37 const 1 100.00
|
||||||
3 SUBQUERY t8 const PRIMARY PRIMARY 37 1 100.00 Using index
|
3 SUBQUERY t8 const PRIMARY PRIMARY 37 1 100.00 Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select 'joce' AS `pseudo`,(select 'test' from `test`.`t8` where 1) AS `(SELECT email FROM t8 WHERE pseudo=(SELECT pseudo FROM t8 WHERE pseudo='joce'))` from `test`.`t8` where 1
|
Note 1003 select 'joce' AS `pseudo`,(select 'test' from `test`.`t8` where ('joce' = (select 'joce' from `test`.`t8` where 1))) AS `(SELECT email FROM t8 WHERE pseudo=(SELECT pseudo FROM t8 WHERE pseudo='joce'))` from `test`.`t8` where ('joce' = (select 'joce' from `test`.`t8` where 1))
|
||||||
SELECT pseudo FROM t8 WHERE pseudo=(SELECT pseudo,email FROM
|
SELECT pseudo FROM t8 WHERE pseudo=(SELECT pseudo,email FROM
|
||||||
t8 WHERE pseudo='joce');
|
t8 WHERE pseudo='joce');
|
||||||
ERROR 21000: Operand should contain 1 column(s)
|
ERROR 21000: Operand should contain 1 column(s)
|
||||||
@ -553,7 +553,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 const PRIMARY,numreponse PRIMARY 7 const,const 1 100.00 Using index
|
1 PRIMARY t1 const PRIMARY,numreponse PRIMARY 7 const,const 1 100.00 Using index
|
||||||
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select '3' AS `numreponse` from `test`.`t1` where (('1' = '1'))
|
Note 1003 select '3' AS `numreponse` from `test`.`t1` where (('1' = '1') and ('3' = 3))
|
||||||
drop table t1;
|
drop table t1;
|
||||||
CREATE TABLE t1 (a int(1));
|
CREATE TABLE t1 (a int(1));
|
||||||
INSERT INTO t1 VALUES (1);
|
INSERT INTO t1 VALUES (1);
|
||||||
|
@ -16,7 +16,7 @@ CREATE TABLE t1 (a int, b int);
|
|||||||
INSERT INTO t1 VALUES (1,1);
|
INSERT INTO t1 VALUES (1,1);
|
||||||
EXPLAIN SELECT * FROM t1 WHERE b = (SELECT max(2));
|
EXPLAIN SELECT * FROM t1 WHERE b = (SELECT max(2));
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
1 PRIMARY t1 system NULL NULL NULL NULL 1
|
||||||
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL No tables used
|
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
CREATE DATABASE `TESTDB`;
|
CREATE DATABASE `TESTDB`;
|
||||||
|
@ -2267,7 +2267,7 @@ EXPLAIN SELECT 1 FROM t1 AS t1_outer1 JOIN t1 AS t1_outer2
|
|||||||
ON t1_outer1.a = (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2)
|
ON t1_outer1.a = (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2)
|
||||||
AND t1_outer1.b = t1_outer2.b;
|
AND t1_outer1.b = t1_outer2.b;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1_outer1 ref a a 5 const 1 Using where; Using index
|
1 PRIMARY t1_outer1 ref a a 5 const 1 Using index
|
||||||
1 PRIMARY t1_outer2 index NULL a 10 NULL 15 Using where; Using index; Using join buffer (flat, BNL join)
|
1 PRIMARY t1_outer2 index NULL a 10 NULL 15 Using where; Using index; Using join buffer (flat, BNL join)
|
||||||
2 SUBQUERY t1 index NULL a 10 NULL 15 Using index
|
2 SUBQUERY t1 index NULL a 10 NULL 15 Using index
|
||||||
EXPLAIN SELECT (SELECT (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2) x
|
EXPLAIN SELECT (SELECT (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2) x
|
||||||
|
@ -367,7 +367,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
2 SUBQUERY t8 const PRIMARY PRIMARY 37 const 1 100.00
|
2 SUBQUERY t8 const PRIMARY PRIMARY 37 const 1 100.00
|
||||||
3 SUBQUERY t8 const PRIMARY PRIMARY 37 1 100.00 Using index
|
3 SUBQUERY t8 const PRIMARY PRIMARY 37 1 100.00 Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select 'joce' AS `pseudo`,(select 'test' from `test`.`t8` where 1) AS `(SELECT email FROM t8 WHERE pseudo=(SELECT pseudo FROM t8 WHERE pseudo='joce'))` from `test`.`t8` where 1
|
Note 1003 select 'joce' AS `pseudo`,(select 'test' from `test`.`t8` where ('joce' = (select 'joce' from `test`.`t8` where 1))) AS `(SELECT email FROM t8 WHERE pseudo=(SELECT pseudo FROM t8 WHERE pseudo='joce'))` from `test`.`t8` where ('joce' = (select 'joce' from `test`.`t8` where 1))
|
||||||
SELECT pseudo FROM t8 WHERE pseudo=(SELECT pseudo,email FROM
|
SELECT pseudo FROM t8 WHERE pseudo=(SELECT pseudo,email FROM
|
||||||
t8 WHERE pseudo='joce');
|
t8 WHERE pseudo='joce');
|
||||||
ERROR 21000: Operand should contain 1 column(s)
|
ERROR 21000: Operand should contain 1 column(s)
|
||||||
@ -546,7 +546,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 const PRIMARY,numreponse PRIMARY 7 const,const 1 100.00 Using index
|
1 PRIMARY t1 const PRIMARY,numreponse PRIMARY 7 const,const 1 100.00 Using index
|
||||||
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select '3' AS `numreponse` from `test`.`t1` where (('1' = '1'))
|
Note 1003 select '3' AS `numreponse` from `test`.`t1` where (('1' = '1') and ('3' = 3))
|
||||||
drop table t1;
|
drop table t1;
|
||||||
CREATE TABLE t1 (a int(1));
|
CREATE TABLE t1 (a int(1));
|
||||||
INSERT INTO t1 VALUES (1);
|
INSERT INTO t1 VALUES (1);
|
||||||
|
@ -1412,3 +1412,48 @@ SELECT STRAIGHT_JOIN (
|
|||||||
);
|
);
|
||||||
|
|
||||||
drop table t1, t2, t3;
|
drop table t1, t2, t3;
|
||||||
|
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # LP BUG#777597 Wrong result with multipart keys, in_to_exists=on, NOT IN in MWL#89
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t1 ( f4 int);
|
||||||
|
INSERT IGNORE INTO t1 VALUES (2),(2);
|
||||||
|
|
||||||
|
CREATE TABLE t2 ( f3 int, f10 int, KEY (f10,f3) );
|
||||||
|
INSERT IGNORE INTO t2 VALUES (6, 1), (6, 1);
|
||||||
|
|
||||||
|
CREATE TABLE t3 ( f10 int );
|
||||||
|
INSERT IGNORE INTO t3 VALUES (1);
|
||||||
|
|
||||||
|
SET SESSION optimizer_switch='in_to_exists=on,materialization=off';
|
||||||
|
|
||||||
|
EXPLAIN
|
||||||
|
SELECT * FROM t1 WHERE ( 6 ) NOT IN ( SELECT t2.f3 FROM t2 JOIN t3 ON t3.f10 = t2.f10);
|
||||||
|
SELECT * FROM t1 WHERE ( 6 ) NOT IN ( SELECT t2.f3 FROM t2 JOIN t3 ON t3.f10 = t2.f10);
|
||||||
|
|
||||||
|
drop table t1,t2,t3;
|
||||||
|
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # LP BUG#778413 Third crash in select_describe() in maria-5.3-mwl89
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t1 ( f11 int) ;
|
||||||
|
INSERT INTO t1 VALUES (1),(1);
|
||||||
|
|
||||||
|
CREATE TABLE t2 ( f1 int NOT NULL) ;
|
||||||
|
INSERT INTO t2 VALUES (20);
|
||||||
|
|
||||||
|
CREATE TABLE t3 (f3 int) ;
|
||||||
|
INSERT INTO t3 VALUES (2),(2);
|
||||||
|
|
||||||
|
EXPLAIN SELECT * FROM t2
|
||||||
|
WHERE t2.f1 = (
|
||||||
|
SELECT MAX( f3 ) FROM t3
|
||||||
|
WHERE EXISTS (
|
||||||
|
SELECT DISTINCT f11
|
||||||
|
FROM t1));
|
||||||
|
|
||||||
|
drop table t1, t2, t3;
|
||||||
|
@ -421,14 +421,12 @@ static bool convert_constant_item(THD *thd, Item_field *field_item,
|
|||||||
thd->count_cuted_fields= CHECK_FIELD_IGNORE;
|
thd->count_cuted_fields= CHECK_FIELD_IGNORE;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Store the value of the field/constant if it references an outer field
|
Store the value of the field/constant because the call to save_in_field
|
||||||
because the call to save_in_field below overrides that value.
|
below overrides that value. Don't save field value if no data has been
|
||||||
Don't save field value if no data has been read yet.
|
read yet.
|
||||||
Outer constant values are always saved.
|
|
||||||
*/
|
*/
|
||||||
bool save_field_value= (field_item->depended_from &&
|
bool save_field_value= (field_item->const_item() ||
|
||||||
(field_item->const_item() ||
|
!(field->table->status & STATUS_NO_RECORD));
|
||||||
!(field->table->status & STATUS_NO_RECORD)));
|
|
||||||
if (save_field_value)
|
if (save_field_value)
|
||||||
orig_field_val= field->val_int();
|
orig_field_val= field->val_int();
|
||||||
if (!(*item)->is_null() && !(*item)->save_in_field(field, 1))
|
if (!(*item)->is_null() && !(*item)->save_in_field(field, 1))
|
||||||
@ -1743,7 +1741,10 @@ bool Item_in_optimizer::fix_left(THD *thd, Item **ref)
|
|||||||
with_sum_func= args[0]->with_sum_func;
|
with_sum_func= args[0]->with_sum_func;
|
||||||
with_field= args[0]->with_field;
|
with_field= args[0]->with_field;
|
||||||
if ((const_item_cache= args[0]->const_item()))
|
if ((const_item_cache= args[0]->const_item()))
|
||||||
|
{
|
||||||
cache->store(args[0]);
|
cache->store(args[0]);
|
||||||
|
cache->cache_value();
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5752,7 +5753,7 @@ void Item_equal::update_const()
|
|||||||
Item *item;
|
Item *item;
|
||||||
while ((item= it++))
|
while ((item= it++))
|
||||||
{
|
{
|
||||||
if (item->const_item())
|
if (item->const_item() && !item->is_expensive())
|
||||||
{
|
{
|
||||||
if (item == equal_items.head())
|
if (item == equal_items.head())
|
||||||
with_const= TRUE;
|
with_const= TRUE;
|
||||||
|
@ -619,7 +619,6 @@ protected:
|
|||||||
class subselect_single_select_engine: public subselect_engine
|
class subselect_single_select_engine: public subselect_engine
|
||||||
{
|
{
|
||||||
bool prepared; /* simple subselect is prepared */
|
bool prepared; /* simple subselect is prepared */
|
||||||
bool optimized; /* simple subselect is optimized */
|
|
||||||
bool executed; /* simple subselect is executed */
|
bool executed; /* simple subselect is executed */
|
||||||
st_select_lex *select_lex; /* corresponding select_lex */
|
st_select_lex *select_lex; /* corresponding select_lex */
|
||||||
JOIN * join; /* corresponding JOIN structure */
|
JOIN * join; /* corresponding JOIN structure */
|
||||||
|
@ -9508,7 +9508,7 @@ static bool check_simple_equality(Item *left_item, Item *right_item,
|
|||||||
Item *orig_field_item= 0;
|
Item *orig_field_item= 0;
|
||||||
if (left_item->type() == Item::FIELD_ITEM &&
|
if (left_item->type() == Item::FIELD_ITEM &&
|
||||||
!((Item_field*)left_item)->depended_from &&
|
!((Item_field*)left_item)->depended_from &&
|
||||||
right_item->const_item())
|
right_item->const_item() && !right_item->is_expensive())
|
||||||
{
|
{
|
||||||
orig_field_item= left_item;
|
orig_field_item= left_item;
|
||||||
field_item= (Item_field *) left_item;
|
field_item= (Item_field *) left_item;
|
||||||
@ -9516,7 +9516,7 @@ static bool check_simple_equality(Item *left_item, Item *right_item,
|
|||||||
}
|
}
|
||||||
else if (right_item->type() == Item::FIELD_ITEM &&
|
else if (right_item->type() == Item::FIELD_ITEM &&
|
||||||
!((Item_field*)right_item)->depended_from &&
|
!((Item_field*)right_item)->depended_from &&
|
||||||
left_item->const_item())
|
left_item->const_item() && !left_item->is_expensive())
|
||||||
{
|
{
|
||||||
orig_field_item= right_item;
|
orig_field_item= right_item;
|
||||||
field_item= (Item_field *) right_item;
|
field_item= (Item_field *) right_item;
|
||||||
|
Reference in New Issue
Block a user