Details
-
Bug
-
Status: Open (View Workflow)
-
Critical
-
Resolution: Unresolved
-
12.2.2
-
None
-
None
-
Docker: mariadb:12.2.2
Server version: 12.2.2-MariaDB-ubu2404
Source revision: d26a6f44c1f2119377e79a9540886c6d8c01472f
Description
Hi, I found a logic bug in MariaDB 12.2.2.
Two equivalent queries return different results.
Expected results:
Empty set (0.001 sec)
|
Actual Results:
+--------------------+------+
|
| c0 | c1 |
|
+--------------------+------+
|
| 0.7173867815810598 | 1 |
|
+--------------------+------+
|
How to repeat:
-- create table
|
DROP TABLE IF EXISTS `t0`; |
CREATE TABLE `t0` ( `c1` varchar(500) DEFAULT NULL, `c2` varchar(500) DEFAULT NULL, UNIQUE KEY `i1` (`c1`(4),`c2`) USING BTREE ) CHARSET=utf8mb4; |
INSERT INTO `t0` VALUES ('1',NULL),('1','-1839775031'),('1','0.18263104414081566'),('1',''),('1','-1956401184'),('1',NULL),('1','1733636218'),('1',NULL),('1','0.7173867815810598'),('1',NULL),('1',NULL),('1',NULL),('-112798560',NULL); |
|
|
DROP TABLE IF EXISTS `t1`; |
CREATE TABLE `t1` ( `c0` float unsigned DEFAULT NULL, `c1` varchar(500) DEFAULT NULL, `c2` varchar(500) DEFAULT NULL, UNIQUE KEY `i0` (`c1`(4),`c0`,`c2`(3)) USING BTREE ) CHARSET=utf8mb4; |
INSERT INTO `t1` VALUES (0.182631,NULL,NULL),(NULL,NULL,'0.31267065437591823'),(0,'','!\'})쥕%'),(NULL,'371099250',NULL),(162418000,'1945517619',NULL); |
|
|
|
|
-- query_A
|
SELECT ref_0.c2 AS c0, ref_0.c1 AS c1 |
FROM t0 AS ref_0 |
WHERE EXISTS ( |
SELECT ref_0.c1 AS c0, ref_0.c1 AS c1 |
FROM t0 AS ref_1 |
WHERE FALSE AND FALSE |
);
|
|
|
-- query_B, bug-triggering case
|
SELECT t.c2 AS c0, t.c1 AS c1 |
FROM t0 AS t |
WHERE EXISTS ( |
SELECT t.c1 AS c0, t.c1 AS c1 |
FROM t0 AS ref_1 |
WHERE FALSE AND FALSE |
)
|
OR ( |
(LPAD(DATABASE(), ABS((CAST(t.c2 AS DECIMAL(65,30)) * CAST(t.c2 AS DECIMAL(65,30)))) + 1, t.c1) / TAN(CAST(t.c1 AS SIGNED))) |
AND NOT (LPAD(DATABASE(), ABS((CAST(t.c2 AS DECIMAL(65,30)) * CAST(t.c2 AS DECIMAL(65,30)))) + 1, t.c1) / TAN(CAST(t.c1 AS SIGNED))) |
);
|