Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.0(EOL), 10.1(EOL)
Description
SET timestamp=UNIX_TIMESTAMP('2001-01-01 01:02:03');
|
DROP TABLE IF EXISTS t1;
|
CREATE TABLE t1 (a TIME);
|
INSERT INTO t1 VALUES ('10:20:31'),('-10:20:31');
|
SELECT * FROM t1 WHERE a=TIMESTAMP'2001-01-01 10:20:31';
|
SELECT * FROM t1 WHERE LENGTH(a)=8;
|
SELECT * FROM t1 WHERE LENGTH(a)=8 AND a=TIMESTAMP'2001-01-01 10:20:31';
|
In the above script the first and the second SELECT queries correctly return one row, the third SELECT query returns erroneously no rows.
Attachments
Issue Links
- blocks
-
MDEV-8728 Fix a number of problems in equal field and equal expression propagation
-
- Closed
-
MySQL-5.7.8 does not support propagation in this case:
explain extended SELECT * FROM t1 WHERE LENGTH(a)=8 AND a=TIMESTAMP'2001-01-01 10:20:31';
SHOW WARNINGS;
+---------+------+----------------------------------------------------------------------------------------------------------------------------------------+
| Level | Code | Message |
+---------+------+----------------------------------------------------------------------------------------------------------------------------------------+
| Warning | 1681 | 'EXTENDED' is deprecated and will be removed in a future release. |
| Note | 1003 | /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where ((length(`test`.`t1`.`a`) = 8) and (`test`.`t1`.`a` = '10:20:31')) |
+---------+------+----------------------------------------------------------------------------------------------------------------------------------------+