Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
3.1.0
-
None
-
None
Description
The following query returns -100 which is logically incorrect:
SELECT CASE WHEN COALESCE( CASE WHEN COALESCE( CAST('Infinity' AS DOUBLE), 0 ) = 0 THEN -1 ELSE ( 5 / (CAST('Infinity' AS DOUBLE) * SIGN(5)) ) END, 0 ) = 0 THEN ( CAST('Infinity' AS DOUBLE) -- -200 ) ELSE -100 END full_query
The expected behavior is for it to return Infinity, or the contents of the THEN branch.
If the THEN branch is edited like this, it returns -200 as expected:
SELECT CASE WHEN COALESCE( CASE WHEN COALESCE( CAST('Infinity' AS DOUBLE), 0 ) = 0 THEN -1 ELSE ( 5 / (CAST('Infinity' AS DOUBLE) * SIGN(5)) ) END, 0 ) = 0 THEN ( -- CAST('Infinity' AS DOUBLE) -200 ) ELSE -100 END full_query