Details
-
Type:
Bug
-
Status: Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 10.1, 10.0
-
Fix Version/s: 10.1.8
-
Component/s: Data Manipulation - Subquery, Temporal Types
-
Labels:
-
Sprint:10.1.8-4
Description
SET timestamp=UNIX_TIMESTAMP('2015-01-01 00:00:00');
DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (a TIME);
INSERT INTO t1 VALUES ('00:00:00'),('00:01:00');
SELECT 1 FROM t1 WHERE 2016 > SOME (SELECT CAST(a AS DATETIME) FROM t1);
returns two rows with no warnings:
+---+ | 1 | +---+ | 1 | | 1 | +---+ 2 rows in set (0.01 sec)
Now let's check which of the rows in SOME actually generated true condition:
SELECT * FROM t1 WHERE 2016 > CAST(a AS DATETIME); SHOW WARNINGS;
Opps. It returns empty set with a warning:
+---------+------+----------------------------------+ | Level | Code | Message | +---------+------+----------------------------------+ | Warning | 1292 | Incorrect datetime value: '2016' | +---------+------+----------------------------------+ 1 row in set (0.00 sec)
The result of the query with SOME is obviously wrong. It should have returned empty set with warnings.
Gliffy Diagrams
Attachments
Activity
- All
- Comments
- Work Log
- History
- Activity
- Transitions
Also repeatable in MySQL-5.7.8