diff options
Diffstat (limited to 'mysql-test/main/func_debug.test')
-rw-r--r-- | mysql-test/main/func_debug.test | 47 |
1 files changed, 41 insertions, 6 deletions
diff --git a/mysql-test/main/func_debug.test b/mysql-test/main/func_debug.test index f9b6daab3a2..9237561500d 100644 --- a/mysql-test/main/func_debug.test +++ b/mysql-test/main/func_debug.test @@ -499,24 +499,59 @@ EXECUTE IMMEDIATE 'SELECT * FROM t1 WHERE a BETWEEN -1 AND ?' USING 184467440737 EXECUTE IMMEDIATE 'SELECT * FROM t1 WHERE a BETWEEN -1 AND ?' USING 18446744073709551616; DROP TABLE t1; +CREATE TABLE t1 (a VARCHAR(10)); +INSERT INTO t1 VALUES ('0'),('1'),('2'); +SELECT * FROM t1 WHERE a BETWEEN '0' AND '0'; +SELECT * FROM t1 WHERE a BETWEEN '0' AND ' 0'; +SELECT * FROM t1 WHERE a BETWEEN '0' AND '0 '; +DROP TABLE t1; + +SET SESSION debug_dbug="-d,Item_basic_value"; + + +--echo # +--echo # MDEV-11362 True condition elimination does not work for DECIMAL and temporal dynamic SQL parameters +--echo # + +SET SESSION debug_dbug="+d,Item_basic_value"; -# DECIMAL does not work yet CREATE TABLE t1 (a DECIMAL(10,3)); INSERT INTO t1 VALUES (1),(2),(3); SELECT * FROM t1 WHERE a BETWEEN 1.0 AND 1.0; +EXECUTE IMMEDIATE 'SELECT * FROM t1 WHERE a BETWEEN 1.0 AND ?' USING 1.0; DROP TABLE t1; -# Temporal types do not work yet CREATE TABLE t1 (a TIME); INSERT INTO t1 VALUES ('00:00:00'),('00:00:01'); SELECT * FROM t1 WHERE a BETWEEN TIME'00:00:00' AND TIME'00:00:00'; +EXECUTE IMMEDIATE 'SELECT * FROM t1 WHERE a BETWEEN TIME''00:00:00'' AND ?' USING TIME'00:00:00'; +DROP TABLE t1; + +CREATE TABLE t1 (a DATE); +INSERT INTO t1 VALUES ('2001-01-01'),('2001-01-02'); +SELECT * FROM t1 WHERE a BETWEEN DATE'2001-01-01' AND DATE'2001-01-01'; +EXECUTE IMMEDIATE 'SELECT * FROM t1 WHERE a BETWEEN DATE''2001-01-01'' AND ?' USING DATE'2001-01-01'; +DROP TABLE t1; + +CREATE TABLE t1 (a DATETIME); +INSERT INTO t1 VALUES ('2001-01-01 00:00:00'),('2001-01-01 00:00:00'); +SELECT * FROM t1 WHERE a BETWEEN TIMESTAMP'2001-01-01 00:00:00' AND TIMESTAMP'2001-01-01 00:00:00'; +EXECUTE IMMEDIATE 'SELECT * FROM t1 WHERE a BETWEEN TIMESTAMP''2001-01-01 00:00:00'' AND ?' USING TIMESTAMP'2001-01-01 00:00:00'; DROP TABLE t1; +SET SESSION debug_dbug="-d,Item_basic_value"; + + +--echo # +--echo # MDEV-16426 Optimizer erroneously treats equal constants of different formats as same +--echo # + +SET SESSION debug_dbug="+d,Item_basic_value"; + CREATE TABLE t1 (a VARCHAR(10)); -INSERT INTO t1 VALUES ('0'),('1'),('2'); -SELECT * FROM t1 WHERE a BETWEEN '0' AND '0'; -SELECT * FROM t1 WHERE a BETWEEN '0' AND ' 0'; -SELECT * FROM t1 WHERE a BETWEEN '0' AND '0 '; +INSERT INTO t1 VALUES ('a'),('b'),('c'); +SELECT * FROM t1 WHERE a BETWEEN 'a' AND 0x61; +EXECUTE IMMEDIATE 'SELECT * FROM t1 WHERE a BETWEEN ''a'' AND ?' USING 0x61; DROP TABLE t1; SET SESSION debug_dbug="-d,Item_basic_value"; |