Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
5.5(EOL), 10.0(EOL), 10.1(EOL), 10.2(EOL), 10.3(EOL)
Description
This script:
DROP TABLE IF EXISTS t1; |
CREATE TABLE t1 (a BIGINT, b BIGINT UNSIGNED); |
INSERT INTO t1 VALUES (-9223372036854775808,18446744073709551615); |
SELECT * FROM t1 WHERE -1 IN (a,b); |
erroneously returns the row:
+----------------------+----------------------+
|
| a | b |
|
+----------------------+----------------------+
|
| -9223372036854775808 | 18446744073709551615 |
|
+----------------------+----------------------+
|
If I now change the left argument to DECIMAL or DOUBLE, it starts to work fine and return an empty set:
SELECT * FROM t1 WHERE -1.0 IN (a,b); |
SELECT * FROM t1 WHERE -1e0 IN (a,b); |
CASE suffers from the same problem. See MDEV-11554.
Attachments
Issue Links
- blocks
-
MDEV-4912 Data type plugin API version 1
- Closed
- relates to
-
MDEV-11514 IN with a mixture of TIME and DATETIME returns a wrong result
- Closed
-
MDEV-11554 Wrong result for CASE on a mixture of signed and unsigned expressions
- Closed