Description:
When a large FLOAT literal is used directly in a bitwise XOR (^) operation, it is correctly converted to a BIGINT UNSIGNED integer, and the query behaves as expected. However, when the exact same FLOAT literal is returned by a CASE statement, its type is handled incorrectly before the bitwise operation.
How to repeat:
CREATE TABLE t1855 (c1 INT8);
INSERT t1855 () VALUES (8629672225906417705);
SELECT * FROM t1855 WHERE(((CASE WHEN 1 THEN 1.849617210394965E38 ELSE NULL END) ^ t1855.c1) < (8629672225906417705));
-- 1 ROWS SELECTED
SELECT * FROM t1855 WHERE((1.849617210394965E38 ^ t1855.c1) < (8629672225906417705));
-- 0