[ 
https://issues.apache.org/jira/browse/IMPALA-8054?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Greg Rahn updated IMPALA-8054:
------------------------------
    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
{noformat}
predicates: (cast(10 as float) >= col4) AND (10 <= col3)
{noformat}

*Test cases:*
{noformat}
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

{noformat}

  was:
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
{noformat}
predicates: (cast(10 as float) >= col4) AND (10 <= col3)
{noformat}

*Test case:*
{noformat}
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
{noformat}


> Implicit cast fails with {const INT} BETWEEN FLOAT and INT
> ----------------------------------------------------------
>
>                 Key: IMPALA-8054
>                 URL: https://issues.apache.org/jira/browse/IMPALA-8054
>             Project: IMPALA
>          Issue Type: Bug
>          Components: Frontend
>    Affects Versions: Impala 3.2.0
>            Reporter: Greg Rahn
>            Assignee: Paul Rogers
>            Priority: Major
>
> 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
> {noformat}
> predicates: (cast(10 as float) >= col4) AND (10 <= col3)
> {noformat}
> *Test cases:*
> {noformat}
> 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
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-all-unsubscr...@impala.apache.org
For additional commands, e-mail: issues-all-h...@impala.apache.org

Reply via email to