Details
Description
Hi, I found a logic bug in MariaDB 12.2.2.
How to repeat:
-- create table
|
DROP TABLE IF EXISTS `t0`; |
CREATE TABLE `t0` ( |
`c0` decimal(10,0) DEFAULT NULL, |
UNIQUE KEY `c0` (`c0`) |
);
|
INSERT INTO `t0` VALUES (NULL), (-1453243642), (0), (959229237); |
|
|
DROP TABLE IF EXISTS `t1`; |
CREATE TABLE `t1` ( |
`c0` decimal(10,0) DEFAULT NULL, |
UNIQUE KEY `c0` (`c0`) |
);
|
INSERT INTO `t1` VALUES (NULL), (-310606044), (959229237); |
|
|
-- query, expect:empty set, actual:{0}
|
SELECT * FROM t0 |
WHERE
|
(LPAD('0', c0 + 1, '1') OR REPLACE(CAST(FALSE AS CHAR), FALSE, c0)) |
AND |
NOT (LPAD('0', c0 + 1, '1') OR REPLACE(CAST(FALSE AS CHAR), FALSE, c0)); |
|