diff options
Diffstat (limited to 'mysql-test/t/derived.test')
-rw-r--r-- | mysql-test/t/derived.test | 69 |
1 files changed, 68 insertions, 1 deletions
diff --git a/mysql-test/t/derived.test b/mysql-test/t/derived.test index ddce7f55292..38636b0e971 100644 --- a/mysql-test/t/derived.test +++ b/mysql-test/t/derived.test @@ -492,7 +492,38 @@ update t1 set balance=(select sum(balance) from (SELECT balance FROM t1 where ac set optimizer_switch=@save_derived_optimizer_switch_bug; drop table t1; -set optimizer_switch=@save_derived_optimizer_switch; +--echo # +--echo # MDEV-6219:Server crashes in Bitmap<64u>::merge +--echo # (this=0x180, map2=...) on 2nd execution of PS with INSERT .. SELECT, +--echo # derived_merge +--echo # + +CREATE TABLE t1 (a VARCHAR(8)) ENGINE=MyISAM; +INSERT INTO t1 VALUES ('foo'),('bar'); + +create procedure p1() + INSERT INTO t1 SELECT * FROM ( + SELECT * FROM t1 + ) AS sq + WHERE sq.a IN ( SELECT 'baz' FROM DUAL ); + +call p1(); +call p1(); +drop procedure p1; + +PREPARE stmt FROM " + INSERT INTO t1 SELECT * FROM ( + SELECT * FROM t1 + ) AS sq + WHERE sq.a IN ( SELECT 'baz' FROM DUAL ) +"; + +EXECUTE stmt; +EXECUTE stmt; + +deallocate prepare stmt; + +drop table t1; --echo # --echo # MDEV-6892: WHERE does not apply @@ -506,3 +537,39 @@ select x.id, message from (select id from t1) x left join (select id, 1 as message from t2) y on x.id=y.id where coalesce(message,0) <> 0; drop table t1,t2; + +set optimizer_switch=@save_derived_optimizer_switch; + +--echo # +--echo # Start of 10.1 tests +--echo # + +--echo # +--echo # MDEV-8747 Wrong result for SELECT..WHERE derived_table_column='a' AND derived_table_column<>_latin1'A' COLLATE latin1_bin +--echo # +CREATE TABLE t1 (a VARCHAR(10)); +INSERT INTO t1 VALUES ('a'),('A'); +SELECT * FROM t1 WHERE a='a' AND a <> _latin1'A' COLLATE latin1_bin; +SELECT * FROM (SELECT * FROM t1) AS table1 WHERE a='a' AND a <> _latin1'A' COLLATE latin1_bin; +DROP TABLE t1; + +CREATE TABLE t1 (a ENUM('5','6')); +INSERT INTO t1 VALUES ('5'),('6'); +SELECT * FROM (SELECT * FROM t1) AS table1 WHERE a='5'; +SELECT * FROM (SELECT * FROM t1) AS table1 WHERE a=1; +SELECT * FROM (SELECT * FROM t1) AS table1 WHERE a='5' AND a=1; +DROP TABLE t1; + +--echo # +--echo # MDEV-8749 Wrong result for SELECT..WHERE derived_table_enum_column='number' AND derived_table_enum_column OP number2 +--echo # +CREATE TABLE t1 (a ENUM('5','6')); +INSERT INTO t1 VALUES ('5'),('6'); +SELECT * FROM (SELECT * FROM t1) AS table1 WHERE a='5'; +SELECT * FROM (SELECT * FROM t1) AS table1 WHERE a=1; +SELECT * FROM (SELECT * FROM t1) AS table1 WHERE a='5' AND a=1; +DROP TABLE t1; + +--echo # +--echo # End of 10.1 tests +--echo # |