summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorSergei Golubchik <sergii@pisem.net>2012-08-27 18:13:17 +0200
committerSergei Golubchik <sergii@pisem.net>2012-08-27 18:13:17 +0200
commit9a64d0794c3dce1652839820350a8c4b9b510e99 (patch)
tree33ebd07354a15944288a071bd9319dfa34f226ef /mysql-test
parentced3907c02dfa3b237e14d79aa800b3a0769e94a (diff)
parente988c4dde6c1b88523b1d4e748cbd4f5025b128d (diff)
downloadmariadb-git-9a64d0794c3dce1652839820350a8c4b9b510e99.tar.gz
5.3 merge
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/r/case.result8
-rw-r--r--mysql-test/r/func_group_innodb.result27
-rw-r--r--mysql-test/r/ps.result106
-rw-r--r--mysql-test/r/sp.result7
-rw-r--r--mysql-test/r/subselect.result30
-rw-r--r--mysql-test/r/subselect_no_mat.result30
-rw-r--r--mysql-test/r/subselect_no_opts.result30
-rw-r--r--mysql-test/r/subselect_no_scache.result30
-rw-r--r--mysql-test/r/subselect_no_semijoin.result30
-rw-r--r--mysql-test/suite/innodb/t/innodb_bug14007649.test4
-rw-r--r--mysql-test/t/case.test19
-rw-r--r--mysql-test/t/func_group_innodb.test29
-rw-r--r--mysql-test/t/ps.test92
-rw-r--r--mysql-test/t/sp.test9
-rw-r--r--mysql-test/t/subselect.test25
15 files changed, 216 insertions, 260 deletions
diff --git a/mysql-test/r/case.result b/mysql-test/r/case.result
index eb6ce7d1752..3852da5d4b0 100644
--- a/mysql-test/r/case.result
+++ b/mysql-test/r/case.result
@@ -220,6 +220,10 @@ a d
3 11120436154190595086
drop table t1, t2;
End of 5.0 tests
+CREATE TABLE t1(a YEAR);
+SELECT 1 FROM t1 WHERE a=1 AND CASE 1 WHEN a THEN 1 ELSE 1 END;
+1
+DROP TABLE t1;
create table t1 (f1 time);
insert t1 values ('00:00:00'),('00:01:00');
select case t1.f1 when '00:00:00' then 1 end from t1;
@@ -227,7 +231,3 @@ case t1.f1 when '00:00:00' then 1 end
1
NULL
drop table t1;
-CREATE TABLE t1(a YEAR);
-SELECT 1 FROM t1 WHERE a=1 AND CASE 1 WHEN a THEN 1 ELSE 1 END;
-1
-DROP TABLE t1;
diff --git a/mysql-test/r/func_group_innodb.result b/mysql-test/r/func_group_innodb.result
index 6485793d0e1..67ea44f187a 100644
--- a/mysql-test/r/func_group_innodb.result
+++ b/mysql-test/r/func_group_innodb.result
@@ -146,19 +146,6 @@ count(*) min(7) max(7)
0 NULL NULL
drop table t1m, t1i, t2m, t2i;
#
-# Bug#13723054 CRASH WITH MIN/MAX AFTER QUICK_GROUP_MIN_MAX_SELECT::NEXT_MIN
-#
-CREATE TABLE t1(a BLOB, b VARCHAR(255) CHARSET LATIN1, c INT,
-KEY(b, c, a(765))) ENGINE=INNODB;
-INSERT INTO t1(a, b, c) VALUES ('', 'a', 0), ('', 'a', null), ('', 'a', 0);
-SELECT MIN(c) FROM t1 GROUP BY b;
-MIN(c)
-0
-EXPLAIN SELECT MIN(c) FROM t1 GROUP BY b;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range NULL b 263 NULL 4 Using index for group-by
-DROP TABLE t1;
-#
# Bug #57954: BIT_AND function returns incorrect results when
# semijoin=on
CREATE TABLE c (
@@ -230,4 +217,18 @@ SELECT member_id_to, COUNT(*) FROM t1 WHERE r_date =
member_id_to COUNT(*)
518491 2
DROP TABLE t1;
+# End of test BUG#12713907
+#
+# Bug#13723054 CRASH WITH MIN/MAX AFTER QUICK_GROUP_MIN_MAX_SELECT::NEXT_MIN
+#
+CREATE TABLE t1(a BLOB, b VARCHAR(255) CHARSET LATIN1, c INT,
+KEY(b, c, a(765))) ENGINE=INNODB;
+INSERT INTO t1(a, b, c) VALUES ('', 'a', 0), ('', 'a', null), ('', 'a', 0);
+SELECT MIN(c) FROM t1 GROUP BY b;
+MIN(c)
+0
+EXPLAIN SELECT MIN(c) FROM t1 GROUP BY b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL b 263 NULL 4 Using index for group-by
+DROP TABLE t1;
End of 5.5 tests
diff --git a/mysql-test/r/ps.result b/mysql-test/r/ps.result
index 7629775b892..95217d9716a 100644
--- a/mysql-test/r/ps.result
+++ b/mysql-test/r/ps.result
@@ -3056,7 +3056,7 @@ DROP TABLE t1;
End of 5.1 tests.
#
-# LP bug#1001500 Crash on the second execution of the PS for
+# lp:1001500 Crash on the second execution of the PS for
# a query with degenerated conjunctive condition
# (see also mysql bug#12582849)
#
@@ -3996,108 +3996,4 @@ Handler_read_rnd_deleted 0
Handler_read_rnd_next 0
deallocate prepare st;
drop table t1;
-#
-# LP bug#993459 Execution of PS for a query with GROUP BY
-# returns wrong result (see also mysql bug#13805127)
-#
-PREPARE s1 FROM
-"
-SELECT c1, t2.c2, count(c3)
-FROM
- (
- SELECT 3 as c2 FROM dual WHERE @x = 1
- UNION
- SELECT 2 FROM dual WHERE @x = 1 OR @x = 2
- ) AS t1,
- (
- SELECT '2012-03-01 01:00:00' AS c1, 3 as c2, 1 as c3 FROM dual
- UNION
- SELECT '2012-03-01 02:00:00', 3, 2 FROM dual
- UNION
- SELECT '2012-03-01 01:00:00', 2, 1 FROM dual
- ) AS t2
-WHERE t2.c2 = t1.c2
-GROUP BY c1, c2
-";
-
-SET @x = 1;
-SELECT c1, t2.c2, count(c3)
-FROM
-(
-SELECT 3 as c2 FROM dual WHERE @x = 1
-UNION
-SELECT 2 FROM dual WHERE @x = 1 OR @x = 2
-) AS t1,
-(
-SELECT '2012-03-01 01:00:00' AS c1, 3 as c2, 1 as c3 FROM dual
-UNION
-SELECT '2012-03-01 02:00:00', 3, 2 FROM dual
-UNION
-SELECT '2012-03-01 01:99345900:00', 2, 1 FROM dual
-) AS t2
-WHERE t2.c2 = t1.c2
-GROUP BY c1, c2;
-c1 c2 count(c3)
-2012-03-01 01:00:00 3 1
-2012-03-01 01:99345900:00 2 1
-2012-03-01 02:00:00 3 1
-
-EXECUTE s1;
-c1 c2 count(c3)
-2012-03-01 01:00:00 2 1
-2012-03-01 01:00:00 3 1
-2012-03-01 02:00:00 3 1
-
-SET @x = 2;
-SELECT c1, t2.c2, count(c3)
-FROM
-(
-SELECT 3 as c2 FROM dual WHERE @x = 1
-UNION
-SELECT 2 FROM dual WHERE @x = 1 OR @x = 2
-) AS t1,
-(
-SELECT '2012-03-01 01:00:00' AS c1, 3 as c2, 1 as c3 FROM dual
-UNION
-SELECT '2012-03-01 02:00:00', 3, 2 FROM dual
-UNION
-SELECT '2012-03-01 01:00:00', 2, 1 FROM dual
-) AS t2
-WHERE t2.c2 = t1.c2
-GROUP BY c1, c2;
-c1 c2 count(c3)
-2012-03-01 01:00:00 2 1
-
-EXECUTE s1;
-c1 c2 count(c3)
-2012-03-01 01:00:00 2 1
-
-SET @x = 1;
-SELECT c1, t2.c2, count(c3)
-FROM
-(
-SELECT 3 as c2 FROM dual WHERE @x = 1
-UNION
-SELECT 2 FROM dual WHERE @x = 1 OR @x = 2
-) AS t1,
-(
-SELECT '2012-03-01 01:00:00' AS c1, 3 as c2, 1 as c3 FROM dual
-UNION
-SELECT '2012-03-01 02:00:00', 3, 2 FROM dual
-UNION
-SELECT '2012-03-01 01:00:00', 2, 1 FROM dual
-) AS t2
-WHERE t2.c2 = t1.c2
-GROUP BY c1, c2;
-c1 c2 count(c3)
-2012-03-01 01:00:00 2 1
-2012-03-01 01:00:00 3 1
-2012-03-01 02:00:00 3 1
-
-EXECUTE s1;
-c1 c2 count(c3)
-2012-03-01 01:00:00 2 1
-2012-03-01 01:00:00 3 1
-2012-03-01 02:00:00 3 1
-DEALLOCATE PREPARE s1;
# End of 5.3 tests
diff --git a/mysql-test/r/sp.result b/mysql-test/r/sp.result
index 414eeada0de..b5e6e84a49a 100644
--- a/mysql-test/r/sp.result
+++ b/mysql-test/r/sp.result
@@ -7811,9 +7811,12 @@ DROP FUNCTION f1;
# -- End of 5.1 tests
# ------------------------------------------------------------------
#
-# LP bug#993459 Execution of PS for a query with GROUP BY
+# lp:993459 Execution of PS for a query with GROUP BY
# returns wrong result (see also mysql bug#13805127)
#
+
+# Bug#13805127: Stored program cache produces wrong result in same THD
+
CREATE PROCEDURE p1(x INT UNSIGNED)
BEGIN
SELECT c1, t2.c2, count(c3)
@@ -7850,7 +7853,7 @@ c1 c2 count(c3)
2012-03-01 02:00:00 3 1
DROP PROCEDURE p1;
#
-# LP bug#1002157 : testing stored function
+# lp:1002157 : testing stored function
# bug#62125 result for null incorrectly yields 1292 warning.
#
DROP FUNCTION IF EXISTS f1;
diff --git a/mysql-test/r/subselect.result b/mysql-test/r/subselect.result
index 8c71c09c1ac..acb1b7266ec 100644
--- a/mysql-test/r/subselect.result
+++ b/mysql-test/r/subselect.result
@@ -6612,7 +6612,33 @@ SELECT MIN(a) AS min_a, a FROM t1 WHERE 1=2 HAVING a NOT IN ( SELECT a from t1 U
min_a a
drop table t1;
#
-# LP BUG#944706 Query with impossible or constant subquery in WHERE or HAVING is not
+# MDEV-367: Different results with and without subquery_cache on
+# a query with a constant NOT IN condition
+#
+CREATE TABLE t1 (a INT) ENGINE=MyISAM;
+INSERT INTO t1 VALUES (1),(2),(3);
+set @mdev367_optimizer_switch = @@optimizer_switch;
+set optimizer_switch = 'subquery_cache=on';
+SELECT * FROM t1 WHERE ( 3, 3 ) NOT IN ( SELECT NULL, NULL ) OR a > 100;
+a
+SELECT *, ( 3, 3 ) NOT IN ( SELECT NULL, NULL ) FROM t1;
+a ( 3, 3 ) NOT IN ( SELECT NULL, NULL )
+1 NULL
+2 NULL
+3 NULL
+set optimizer_switch=@mdev367_optimizer_switch;
+set optimizer_switch = 'subquery_cache=off';
+SELECT * FROM t1 WHERE ( 3, 3 ) NOT IN ( SELECT NULL, NULL ) OR a > 100;
+a
+SELECT *, ( 3, 3 ) NOT IN ( SELECT NULL, NULL ) FROM t1;
+a ( 3, 3 ) NOT IN ( SELECT NULL, NULL )
+1 NULL
+2 NULL
+3 NULL
+set optimizer_switch=@mdev367_optimizer_switch;
+DROP TABLE t1;
+#
+# lp:944706 Query with impossible or constant subquery in WHERE or HAVING is not
# precomputed and thus not part of optimization
#
CREATE TABLE t1 ( a VARCHAR(16), KEY (a) );
@@ -6806,5 +6832,3 @@ Table_schema Table_name Index_name Rows_read
test t2 b 1
set global userstat=@tmp_mdev410;
DROP TABLE t1,t2,t3,t4;
-# return optimizer switch changed in the beginning of this test
-set optimizer_switch=@subselect_tmp;
diff --git a/mysql-test/r/subselect_no_mat.result b/mysql-test/r/subselect_no_mat.result
index 48ab96dcaaa..87402a23a99 100644
--- a/mysql-test/r/subselect_no_mat.result
+++ b/mysql-test/r/subselect_no_mat.result
@@ -6611,7 +6611,33 @@ SELECT MIN(a) AS min_a, a FROM t1 WHERE 1=2 HAVING a NOT IN ( SELECT a from t1 U
min_a a
drop table t1;
#
-# LP BUG#944706 Query with impossible or constant subquery in WHERE or HAVING is not
+# MDEV-367: Different results with and without subquery_cache on
+# a query with a constant NOT IN condition
+#
+CREATE TABLE t1 (a INT) ENGINE=MyISAM;
+INSERT INTO t1 VALUES (1),(2),(3);
+set @mdev367_optimizer_switch = @@optimizer_switch;
+set optimizer_switch = 'subquery_cache=on';
+SELECT * FROM t1 WHERE ( 3, 3 ) NOT IN ( SELECT NULL, NULL ) OR a > 100;
+a
+SELECT *, ( 3, 3 ) NOT IN ( SELECT NULL, NULL ) FROM t1;
+a ( 3, 3 ) NOT IN ( SELECT NULL, NULL )
+1 NULL
+2 NULL
+3 NULL
+set optimizer_switch=@mdev367_optimizer_switch;
+set optimizer_switch = 'subquery_cache=off';
+SELECT * FROM t1 WHERE ( 3, 3 ) NOT IN ( SELECT NULL, NULL ) OR a > 100;
+a
+SELECT *, ( 3, 3 ) NOT IN ( SELECT NULL, NULL ) FROM t1;
+a ( 3, 3 ) NOT IN ( SELECT NULL, NULL )
+1 NULL
+2 NULL
+3 NULL
+set optimizer_switch=@mdev367_optimizer_switch;
+DROP TABLE t1;
+#
+# lp:944706 Query with impossible or constant subquery in WHERE or HAVING is not
# precomputed and thus not part of optimization
#
CREATE TABLE t1 ( a VARCHAR(16), KEY (a) );
@@ -6804,8 +6830,6 @@ Table_schema Table_name Index_name Rows_read
test t2 b 1
set global userstat=@tmp_mdev410;
DROP TABLE t1,t2,t3,t4;
-# return optimizer switch changed in the beginning of this test
-set optimizer_switch=@subselect_tmp;
set optimizer_switch=default;
select @@optimizer_switch like '%materialization=on%';
@@optimizer_switch like '%materialization=on%'
diff --git a/mysql-test/r/subselect_no_opts.result b/mysql-test/r/subselect_no_opts.result
index 9ab4e23b091..c63c14da5bd 100644
--- a/mysql-test/r/subselect_no_opts.result
+++ b/mysql-test/r/subselect_no_opts.result
@@ -6607,7 +6607,33 @@ SELECT MIN(a) AS min_a, a FROM t1 WHERE 1=2 HAVING a NOT IN ( SELECT a from t1 U
min_a a
drop table t1;
#
-# LP BUG#944706 Query with impossible or constant subquery in WHERE or HAVING is not
+# MDEV-367: Different results with and without subquery_cache on
+# a query with a constant NOT IN condition
+#
+CREATE TABLE t1 (a INT) ENGINE=MyISAM;
+INSERT INTO t1 VALUES (1),(2),(3);
+set @mdev367_optimizer_switch = @@optimizer_switch;
+set optimizer_switch = 'subquery_cache=on';
+SELECT * FROM t1 WHERE ( 3, 3 ) NOT IN ( SELECT NULL, NULL ) OR a > 100;
+a
+SELECT *, ( 3, 3 ) NOT IN ( SELECT NULL, NULL ) FROM t1;
+a ( 3, 3 ) NOT IN ( SELECT NULL, NULL )
+1 NULL
+2 NULL
+3 NULL
+set optimizer_switch=@mdev367_optimizer_switch;
+set optimizer_switch = 'subquery_cache=off';
+SELECT * FROM t1 WHERE ( 3, 3 ) NOT IN ( SELECT NULL, NULL ) OR a > 100;
+a
+SELECT *, ( 3, 3 ) NOT IN ( SELECT NULL, NULL ) FROM t1;
+a ( 3, 3 ) NOT IN ( SELECT NULL, NULL )
+1 NULL
+2 NULL
+3 NULL
+set optimizer_switch=@mdev367_optimizer_switch;
+DROP TABLE t1;
+#
+# lp:944706 Query with impossible or constant subquery in WHERE or HAVING is not
# precomputed and thus not part of optimization
#
CREATE TABLE t1 ( a VARCHAR(16), KEY (a) );
@@ -6801,6 +6827,4 @@ Table_schema Table_name Index_name Rows_read
test t2 b 1
set global userstat=@tmp_mdev410;
DROP TABLE t1,t2,t3,t4;
-# return optimizer switch changed in the beginning of this test
-set optimizer_switch=@subselect_tmp;
set @optimizer_switch_for_subselect_test=null;
diff --git a/mysql-test/r/subselect_no_scache.result b/mysql-test/r/subselect_no_scache.result
index d47aa956ead..22a897bc7dd 100644
--- a/mysql-test/r/subselect_no_scache.result
+++ b/mysql-test/r/subselect_no_scache.result
@@ -6618,7 +6618,33 @@ SELECT MIN(a) AS min_a, a FROM t1 WHERE 1=2 HAVING a NOT IN ( SELECT a from t1 U
min_a a
drop table t1;
#
-# LP BUG#944706 Query with impossible or constant subquery in WHERE or HAVING is not
+# MDEV-367: Different results with and without subquery_cache on
+# a query with a constant NOT IN condition
+#
+CREATE TABLE t1 (a INT) ENGINE=MyISAM;
+INSERT INTO t1 VALUES (1),(2),(3);
+set @mdev367_optimizer_switch = @@optimizer_switch;
+set optimizer_switch = 'subquery_cache=on';
+SELECT * FROM t1 WHERE ( 3, 3 ) NOT IN ( SELECT NULL, NULL ) OR a > 100;
+a
+SELECT *, ( 3, 3 ) NOT IN ( SELECT NULL, NULL ) FROM t1;
+a ( 3, 3 ) NOT IN ( SELECT NULL, NULL )
+1 NULL
+2 NULL
+3 NULL
+set optimizer_switch=@mdev367_optimizer_switch;
+set optimizer_switch = 'subquery_cache=off';
+SELECT * FROM t1 WHERE ( 3, 3 ) NOT IN ( SELECT NULL, NULL ) OR a > 100;
+a
+SELECT *, ( 3, 3 ) NOT IN ( SELECT NULL, NULL ) FROM t1;
+a ( 3, 3 ) NOT IN ( SELECT NULL, NULL )
+1 NULL
+2 NULL
+3 NULL
+set optimizer_switch=@mdev367_optimizer_switch;
+DROP TABLE t1;
+#
+# lp:944706 Query with impossible or constant subquery in WHERE or HAVING is not
# precomputed and thus not part of optimization
#
CREATE TABLE t1 ( a VARCHAR(16), KEY (a) );
@@ -6812,8 +6838,6 @@ Table_schema Table_name Index_name Rows_read
test t2 b 1
set global userstat=@tmp_mdev410;
DROP TABLE t1,t2,t3,t4;
-# return optimizer switch changed in the beginning of this test
-set optimizer_switch=@subselect_tmp;
set optimizer_switch=default;
select @@optimizer_switch like '%subquery_cache=on%';
@@optimizer_switch like '%subquery_cache=on%'
diff --git a/mysql-test/r/subselect_no_semijoin.result b/mysql-test/r/subselect_no_semijoin.result
index 96e6c2182fa..e501129f7f6 100644
--- a/mysql-test/r/subselect_no_semijoin.result
+++ b/mysql-test/r/subselect_no_semijoin.result
@@ -6607,7 +6607,33 @@ SELECT MIN(a) AS min_a, a FROM t1 WHERE 1=2 HAVING a NOT IN ( SELECT a from t1 U
min_a a
drop table t1;
#
-# LP BUG#944706 Query with impossible or constant subquery in WHERE or HAVING is not
+# MDEV-367: Different results with and without subquery_cache on
+# a query with a constant NOT IN condition
+#
+CREATE TABLE t1 (a INT) ENGINE=MyISAM;
+INSERT INTO t1 VALUES (1),(2),(3);
+set @mdev367_optimizer_switch = @@optimizer_switch;
+set optimizer_switch = 'subquery_cache=on';
+SELECT * FROM t1 WHERE ( 3, 3 ) NOT IN ( SELECT NULL, NULL ) OR a > 100;
+a
+SELECT *, ( 3, 3 ) NOT IN ( SELECT NULL, NULL ) FROM t1;
+a ( 3, 3 ) NOT IN ( SELECT NULL, NULL )
+1 NULL
+2 NULL
+3 NULL
+set optimizer_switch=@mdev367_optimizer_switch;
+set optimizer_switch = 'subquery_cache=off';
+SELECT * FROM t1 WHERE ( 3, 3 ) NOT IN ( SELECT NULL, NULL ) OR a > 100;
+a
+SELECT *, ( 3, 3 ) NOT IN ( SELECT NULL, NULL ) FROM t1;
+a ( 3, 3 ) NOT IN ( SELECT NULL, NULL )
+1 NULL
+2 NULL
+3 NULL
+set optimizer_switch=@mdev367_optimizer_switch;
+DROP TABLE t1;
+#
+# lp:944706 Query with impossible or constant subquery in WHERE or HAVING is not
# precomputed and thus not part of optimization
#
CREATE TABLE t1 ( a VARCHAR(16), KEY (a) );
@@ -6801,7 +6827,5 @@ Table_schema Table_name Index_name Rows_read
test t2 b 1
set global userstat=@tmp_mdev410;
DROP TABLE t1,t2,t3,t4;
-# return optimizer switch changed in the beginning of this test
-set optimizer_switch=@subselect_tmp;
set @optimizer_switch_for_subselect_test=null;
set @join_cache_level_for_subselect_test=NULL;
diff --git a/mysql-test/suite/innodb/t/innodb_bug14007649.test b/mysql-test/suite/innodb/t/innodb_bug14007649.test
index 5f613cad6f1..da413e0ce59 100644
--- a/mysql-test/suite/innodb/t/innodb_bug14007649.test
+++ b/mysql-test/suite/innodb/t/innodb_bug14007649.test
@@ -1,9 +1,9 @@
--source include/have_innodb.inc
--source include/have_debug.inc
-if (`select plugin_auth_version <= "1.1.8-26.0" from information_schema.plugins where plugin_name='innodb'`)
+if (`select plugin_auth_version <= "1.0.17-13.01" from information_schema.plugins where plugin_name='innodb'`)
{
- --skip Not fixed in XtraDB 1.1.8-26.0 or earlier
+ --skip Not fixed in XtraDB 1.0.17-13.01 or earlier
}
create table t1 (
diff --git a/mysql-test/t/case.test b/mysql-test/t/case.test
index 69a4cb71430..f536f556780 100644
--- a/mysql-test/t/case.test
+++ b/mysql-test/t/case.test
@@ -175,6 +175,16 @@ drop table t1, t2;
--echo End of 5.0 tests
#
+# lp:1001510
+# Bug #11764313 57135: CRASH IN ITEM_FUNC_CASE::FIND_ITEM WITH CASE WHEN
+# ELSE CLAUSE
+#
+
+CREATE TABLE t1(a YEAR);
+SELECT 1 FROM t1 WHERE a=1 AND CASE 1 WHEN a THEN 1 ELSE 1 END;
+DROP TABLE t1;
+
+#
# lp:839387 Assertion `(Item_result)i != TIME_RESULT' failed with CASE + datetime
#
@@ -183,12 +193,3 @@ insert t1 values ('00:00:00'),('00:01:00');
select case t1.f1 when '00:00:00' then 1 end from t1;
drop table t1;
-#
-# LP BUG#1001510
-# Bug #11764313 57135: CRASH IN ITEM_FUNC_CASE::FIND_ITEM WITH CASE WHEN
-# ELSE CLAUSE
-#
-
-CREATE TABLE t1(a YEAR);
-SELECT 1 FROM t1 WHERE a=1 AND CASE 1 WHEN a THEN 1 ELSE 1 END;
-DROP TABLE t1;
diff --git a/mysql-test/t/func_group_innodb.test b/mysql-test/t/func_group_innodb.test
index bfe91f1f587..6706792d162 100644
--- a/mysql-test/t/func_group_innodb.test
+++ b/mysql-test/t/func_group_innodb.test
@@ -84,20 +84,6 @@ select count(*), min(7), max(7) from t2m, t1i;
drop table t1m, t1i, t2m, t2i;
-
---echo #
---echo # Bug#13723054 CRASH WITH MIN/MAX AFTER QUICK_GROUP_MIN_MAX_SELECT::NEXT_MIN
---echo #
-
-CREATE TABLE t1(a BLOB, b VARCHAR(255) CHARSET LATIN1, c INT,
- KEY(b, c, a(765))) ENGINE=INNODB;
-INSERT INTO t1(a, b, c) VALUES ('', 'a', 0), ('', 'a', null), ('', 'a', 0);
-
-SELECT MIN(c) FROM t1 GROUP BY b;
-EXPLAIN SELECT MIN(c) FROM t1 GROUP BY b;
-
-DROP TABLE t1;
-
--echo #
--echo # Bug #57954: BIT_AND function returns incorrect results when
--echo # semijoin=on
@@ -173,4 +159,19 @@ SELECT member_id_to, COUNT(*) FROM t1 WHERE r_date =
DROP TABLE t1;
+--echo # End of test BUG#12713907
+
+--echo #
+--echo # Bug#13723054 CRASH WITH MIN/MAX AFTER QUICK_GROUP_MIN_MAX_SELECT::NEXT_MIN
+--echo #
+
+CREATE TABLE t1(a BLOB, b VARCHAR(255) CHARSET LATIN1, c INT,
+ KEY(b, c, a(765))) ENGINE=INNODB;
+INSERT INTO t1(a, b, c) VALUES ('', 'a', 0), ('', 'a', null), ('', 'a', 0);
+
+SELECT MIN(c) FROM t1 GROUP BY b;
+EXPLAIN SELECT MIN(c) FROM t1 GROUP BY b;
+
+DROP TABLE t1;
+
--echo End of 5.5 tests
diff --git a/mysql-test/t/ps.test b/mysql-test/t/ps.test
index d955b46469c..ff28631862c 100644
--- a/mysql-test/t/ps.test
+++ b/mysql-test/t/ps.test
@@ -3125,7 +3125,7 @@ DROP TABLE t1;
--echo End of 5.1 tests.
--echo #
---echo # LP bug#1001500 Crash on the second execution of the PS for
+--echo # lp:1001500 Crash on the second execution of the PS for
--echo # a query with degenerated conjunctive condition
--echo # (see also mysql bug#12582849)
--echo #
@@ -3572,94 +3572,4 @@ show status like '%Handler_read%';
deallocate prepare st;
drop table t1;
---echo #
---echo # LP bug#993459 Execution of PS for a query with GROUP BY
---echo # returns wrong result (see also mysql bug#13805127)
---echo #
-
-PREPARE s1 FROM
-"
-SELECT c1, t2.c2, count(c3)
-FROM
- (
- SELECT 3 as c2 FROM dual WHERE @x = 1
- UNION
- SELECT 2 FROM dual WHERE @x = 1 OR @x = 2
- ) AS t1,
- (
- SELECT '2012-03-01 01:00:00' AS c1, 3 as c2, 1 as c3 FROM dual
- UNION
- SELECT '2012-03-01 02:00:00', 3, 2 FROM dual
- UNION
- SELECT '2012-03-01 01:00:00', 2, 1 FROM dual
- ) AS t2
-WHERE t2.c2 = t1.c2
-GROUP BY c1, c2
-";
-
---echo
-SET @x = 1;
-SELECT c1, t2.c2, count(c3)
-FROM
- (
- SELECT 3 as c2 FROM dual WHERE @x = 1
- UNION
- SELECT 2 FROM dual WHERE @x = 1 OR @x = 2
- ) AS t1,
- (
- SELECT '2012-03-01 01:00:00' AS c1, 3 as c2, 1 as c3 FROM dual
- UNION
- SELECT '2012-03-01 02:00:00', 3, 2 FROM dual
- UNION
- SELECT '2012-03-01 01:99345900:00', 2, 1 FROM dual
- ) AS t2
-WHERE t2.c2 = t1.c2
-GROUP BY c1, c2;
---echo
-EXECUTE s1;
-
---echo
-SET @x = 2;
-SELECT c1, t2.c2, count(c3)
-FROM
- (
- SELECT 3 as c2 FROM dual WHERE @x = 1
- UNION
- SELECT 2 FROM dual WHERE @x = 1 OR @x = 2
- ) AS t1,
- (
- SELECT '2012-03-01 01:00:00' AS c1, 3 as c2, 1 as c3 FROM dual
- UNION
- SELECT '2012-03-01 02:00:00', 3, 2 FROM dual
- UNION
- SELECT '2012-03-01 01:00:00', 2, 1 FROM dual
- ) AS t2
-WHERE t2.c2 = t1.c2
-GROUP BY c1, c2;
---echo
-EXECUTE s1;
-
---echo
-SET @x = 1;
-SELECT c1, t2.c2, count(c3)
-FROM
- (
- SELECT 3 as c2 FROM dual WHERE @x = 1
- UNION
- SELECT 2 FROM dual WHERE @x = 1 OR @x = 2
- ) AS t1,
- (
- SELECT '2012-03-01 01:00:00' AS c1, 3 as c2, 1 as c3 FROM dual
- UNION
- SELECT '2012-03-01 02:00:00', 3, 2 FROM dual
- UNION
- SELECT '2012-03-01 01:00:00', 2, 1 FROM dual
- ) AS t2
-WHERE t2.c2 = t1.c2
-GROUP BY c1, c2;
---echo
-EXECUTE s1;
-
-DEALLOCATE PREPARE s1;
-
--echo # End of 5.3 tests
diff --git a/mysql-test/t/sp.test b/mysql-test/t/sp.test
index 08421040109..2528f0d7b2b 100644
--- a/mysql-test/t/sp.test
+++ b/mysql-test/t/sp.test
@@ -9111,9 +9111,14 @@ DROP FUNCTION f1;
--echo # ------------------------------------------------------------------
--echo #
---echo # LP bug#993459 Execution of PS for a query with GROUP BY
+--echo # lp:993459 Execution of PS for a query with GROUP BY
--echo # returns wrong result (see also mysql bug#13805127)
--echo #
+
+--echo
+--echo # Bug#13805127: Stored program cache produces wrong result in same THD
+--echo
+
delimiter |;
CREATE PROCEDURE p1(x INT UNSIGNED)
@@ -9147,7 +9152,7 @@ CALL p1(1);
DROP PROCEDURE p1;
--echo #
---echo # LP bug#1002157 : testing stored function
+--echo # lp:1002157 : testing stored function
--echo # bug#62125 result for null incorrectly yields 1292 warning.
--echo #
diff --git a/mysql-test/t/subselect.test b/mysql-test/t/subselect.test
index 786e328aa72..3350b80ed3f 100644
--- a/mysql-test/t/subselect.test
+++ b/mysql-test/t/subselect.test
@@ -5576,7 +5576,28 @@ SELECT MIN(a) AS min_a, a FROM t1 WHERE 1=2 HAVING a NOT IN ( SELECT a from t1 U
drop table t1;
--echo #
---echo # LP BUG#944706 Query with impossible or constant subquery in WHERE or HAVING is not
+--echo # MDEV-367: Different results with and without subquery_cache on
+--echo # a query with a constant NOT IN condition
+--echo #
+CREATE TABLE t1 (a INT) ENGINE=MyISAM;
+INSERT INTO t1 VALUES (1),(2),(3);
+
+set @mdev367_optimizer_switch = @@optimizer_switch;
+
+set optimizer_switch = 'subquery_cache=on';
+SELECT * FROM t1 WHERE ( 3, 3 ) NOT IN ( SELECT NULL, NULL ) OR a > 100;
+SELECT *, ( 3, 3 ) NOT IN ( SELECT NULL, NULL ) FROM t1;
+set optimizer_switch=@mdev367_optimizer_switch;
+
+set optimizer_switch = 'subquery_cache=off';
+SELECT * FROM t1 WHERE ( 3, 3 ) NOT IN ( SELECT NULL, NULL ) OR a > 100;
+SELECT *, ( 3, 3 ) NOT IN ( SELECT NULL, NULL ) FROM t1;
+set optimizer_switch=@mdev367_optimizer_switch;
+
+DROP TABLE t1;
+
+--echo #
+--echo # lp:944706 Query with impossible or constant subquery in WHERE or HAVING is not
--echo # precomputed and thus not part of optimization
--echo #
@@ -5721,5 +5742,3 @@ set global userstat=@tmp_mdev410;
DROP TABLE t1,t2,t3,t4;
---echo # return optimizer switch changed in the beginning of this test
-set optimizer_switch=@subselect_tmp;