Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Done
-
Impala 3.2.0
-
None
Description
In the following query the literal number 10 needs to be compared to two different types: INT and FLOAT, but Impala fails to make the implicit cast for the FLOAT.
The predicates should be
predicates: (cast(10 as float) >= col4) AND (10 <= col3)
Test cases:
sql> describe tab4 +------+--------+---------+ | name | type | comment | +------+--------+---------+ | pk | int | | | col0 | int | | | col1 | float | | | col2 | string | | | col3 | int | | | col4 | float | | | col5 | string | | +------+--------+---------+ sql> SELECT col0 FROM tab4 WHERE 10 BETWEEN col4 AND col3; ERROR: IllegalStateException: child 0 type: FLOAT child 1 type: DOUBLE sql> SELECT * FROM tab4 WHERE NULL NOT BETWEEN col3 AND col1; ERROR: IllegalStateException: child 0 type: INT child 1 type: DOUBLE sql> SELECT * FROM tab4 WHERE NULL BETWEEN CAST ( NULL AS INTEGER ) AND col4 ERROR: IllegalStateException: child 0 type: DOUBLE child 1 type: INT
Attachments
Issue Links
- is related to
-
IMPALA-11530 SELECT statement fails with IllegalStateException when WHERE clause contains equals predicates with float columns and scientific numeric expressions
- Open