Bug #118830 | After a constant value is replaced by a LEAST function returnning the same value, the sql returns different result; | ||
---|---|---|---|
Submitted: | 14 Aug 2:26 | Modified: | 19 Aug 9:09 |
Reporter: | Alice Alice | Email Updates: | |
Status: | Verified | Impact on me: | |
Category: | MySQL Server: DML | Severity: | S3 (Non-critical) |
Version: | 8.0.41, 9.4.0 | OS: | Any |
Assigned to: | CPU Architecture: | Any |
[14 Aug 2:26]
Alice Alice
[19 Aug 9:09]
MySQL Verification Team
Hi, I will verify this bug so that optimizer team can doublecheck but I think this is not a bug. We are here handling comparation of float and bigint so we can expect unexpected things to happen. mysql> CREATE TABLE `test` ( -> `c0` bigint /*!50606 STORAGE DISK */ DEFAULT NULL COMMENT 'asdf', -> KEY `i0` (`c0`) -> ); Query OK, 0 rows affected (0.009 sec) mysql> mysql> insert into test values(1); Query OK, 1 row affected (0.002 sec) mysql> SELECT ALL test.c0 AS ref0 FROM test WHERE 0.7401335565101936 IN (test.c0); Empty set (0.000 sec) mysql> select LEAST(0.8044314491415255, 0.7401335565101936); +-----------------------------------------------+ | LEAST(0.8044314491415255, 0.7401335565101936) | +-----------------------------------------------+ | 0.7401335565101936 | +-----------------------------------------------+ 1 row in set (0.002 sec) mysql> SELECT ALL test.c0 AS ref0 FROM test WHERE LEAST(0.8044314491415255, 0.7401335565101936) IN (test.c0); +------+ | ref0 | +------+ | 1 | +------+ 1 row in set (0.001 sec) mysql> select * FROM test WHERE 0.7401335565101936 IN (test.c0); Empty set (0.000 sec) mysql> select * from test where LEAST(0.8044314491415255, 0.7401335565101936) IN (test.c0); +------+ | c0 | +------+ | 1 | +------+ 1 row in set (0.001 sec) mysql> select c0 from test; +------+ | c0 | +------+ | 1 | +------+ 1 row in set (0.000 sec) mysql> select @@version; +-----------+ | @@version | +-----------+ | 9.4.0 | +-----------+ 1 row in set (0.000 sec) mysql>