1 2# Trailing garbage in string literals 3--eval CREATE TABLE t1 (a $TYPE); 4INSERT INTO t1 VALUES ('2001-01-01 00:00:00'),('2001-01-01 00:00:01'); 5SELECT * FROM t1 WHERE a='2001-01-01 00:00:00x'; 6SELECT * FROM t1 WHERE LENGTH(a) != 20; 7SELECT * FROM t1 WHERE LENGTH(a) != 20 AND a='2001-01-01 00:00:00x'; 8EXPLAIN EXTENDED 9SELECT * FROM t1 WHERE LENGTH(a) != 20 AND a='2001-01-01 00:00:00x'; 10EXPLAIN EXTENDED 11SELECT * FROM t1 WHERE LENGTH(a)!=30+RAND() AND a='2001-01-01 00:00:00x'; 12DROP TABLE t1; 13 14# Leading spaces in string literals 15--eval CREATE TABLE t1 (a $TYPE); 16INSERT INTO t1 VALUES ('2001-01-01 00:00:00'),('2001-01-01 00:00:01'); 17SELECT * FROM t1 WHERE LENGTH(a)=19; 18SELECT * FROM t1 WHERE LENGTH(a)=19 AND a=' 2001-01-01 00:00:00'; 19EXPLAIN EXTENDED 20SELECT * FROM t1 WHERE LENGTH(a)=19 AND a=' 2001-01-01 00:00:00'; 21EXPLAIN EXTENDED 22SELECT * FROM t1 WHERE LENGTH(a)=19+RAND() AND a=' 2001-01-01 00:00:00'; 23# This should not propagate 24EXPLAIN EXTENDED 25SELECT * FROM t1 WHERE LENGTH(a)=30+RAND() AND a=' garbage '; 26DROP TABLE t1; 27 28# Trailing fractional digits in temporal literals 29--eval CREATE TABLE t1 (a $TYPE); 30INSERT INTO t1 VALUES ('2001-01-01 00:00:00'),('2001-01-01 00:00:01'); 31SELECT * FROM t1 WHERE a=TIMESTAMP'2001-01-01 00:00:00.000000'; 32SELECT * FROM t1 WHERE LENGTH(a)=19; 33SELECT * FROM t1 WHERE LENGTH(a)=19 AND a=TIMESTAMP'2001-01-01 00:00:00.000000'; 34EXPLAIN EXTENDED 35SELECT * FROM t1 WHERE LENGTH(a)=19 AND a=TIMESTAMP'2001-01-01 00:00:00.000000'; 36EXPLAIN EXTENDED 37SELECT * FROM t1 WHERE LENGTH(a)=30+RAND() AND a=TIMESTAMP'2001-01-01 00:00:00.000000'; 38DROP TABLE t1; 39 40# Trailing fractional digits in temporal literals, the same precision 41--eval CREATE TABLE t1 (a $TYPE(6)); 42INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000000'),('2001-01-01 00:00:01.000000'); 43SELECT * FROM t1 WHERE a=TIMESTAMP'2001-01-01 00:00:00.000000'; 44SELECT * FROM t1 WHERE LENGTH(a)=26; 45SELECT * FROM t1 WHERE LENGTH(a)=26 AND a=TIMESTAMP'2001-01-01 00:00:00.000000'; 46EXPLAIN EXTENDED 47SELECT * FROM t1 WHERE LENGTH(a)=26 AND a=TIMESTAMP'2001-01-01 00:00:00.000000'; 48EXPLAIN EXTENDED 49SELECT * FROM t1 WHERE LENGTH(a)=40+RAND() AND a=TIMESTAMP'2001-01-01 00:00:00.000000'; 50DROP TABLE t1; 51 52# DATETIME/TIMESTAMP column vs TIME literal 53SET timestamp=UNIX_TIMESTAMP('2001-01-01 10:20:30'); 54--eval CREATE TABLE t1 (a $TYPE); 55INSERT INTO t1 VALUES ('2001-01-01 00:00:00'),('2001-01-01 00:00:01'); 56SELECT * FROM t1 WHERE a=TIME'00:00:00'; 57SELECT * FROM t1 WHERE LENGTH(a)=19; 58SELECT * FROM t1 WHERE LENGTH(a)=19 AND a=TIME'00:00:00'; 59EXPLAIN EXTENDED 60SELECT * FROM t1 WHERE LENGTH(a)=19 AND a=TIME'00:00:00'; 61EXPLAIN EXTENDED 62SELECT * FROM t1 WHERE LENGTH(a)=40+RAND() AND a=TIME'00:00:00'; 63DROP TABLE t1; 64 65