Details
Description
DROP TABLE IF EXISTS t1; |
CREATE TABLE t1 (a INT); |
INSERT INTO t1 VALUES (10); |
SELECT CASE WHEN 0.1 THEN 'TRUE' ELSE 'FALSE' END FROM t1; |
+--------------------------------------------+
|
| CASE WHEN 0.1 THEN 'TRUE' ELSE 'FALSE' END |
|
+--------------------------------------------+
|
| TRUE |
|
+--------------------------------------------+
|
The above script demonstrates:
- 0.1 is evaluated to TRUE when in CASE
- there is one record in the table t1
Now I run these two queries:
SELECT * FROM t1 WHERE 0.1; |
Empty set (0.00 sec)
|
SELECT * FROM t1 WHERE NOT 0.1; |
Empty set (0.00 sec)
|
Notice, both return empty set. Looks wrong. The query with WHERE 0.1 should return one record.
Attachments
Issue Links
- blocks
-
MDEV-18898 SELECT using wrong index when using operator IN with mixed types
-
- Closed
-
-
MDEV-18964 Non-optimal execution of WHERE num_field=const AND num_field=const
-
- Open
-
Activity
Field | Original Value | New Value |
---|---|---|
Link |
This issue blocks |
Link | This issue blocks MDEV-18964 [ MDEV-18964 ] |
issue.field.resolutiondate | 2019-03-26 07:38:30.0 | 2019-03-26 07:38:30.469 |
Fix Version/s | 10.1.39 [ 23305 ] | |
Fix Version/s | 10.2.24 [ 23308 ] | |
Fix Version/s | 10.3.14 [ 23216 ] | |
Fix Version/s | 10.4.4 [ 23310 ] | |
Fix Version/s | 10.4 [ 22408 ] | |
Resolution | Fixed [ 1 ] | |
Status | Open [ 1 ] | Closed [ 6 ] |
Workflow | MariaDB v3 [ 93367 ] | MariaDB v4 [ 155954 ] |