[
https://issues.jboss.org/browse/TEIID-3937?page=com.atlassian.jira.plugin...
]
Don Krapohl commented on TEIID-3937:
------------------------------------
Thanks! I was just getting my project set up. It's not very straightforward, for
what that may be worth, even using the overridden settings.xml. Will push through so I
can contribute. Thanks again!
Multiplying two columns in CASE statement overrides pushdown
(Impala)
---------------------------------------------------------------------
Key: TEIID-3937
URL:
https://issues.jboss.org/browse/TEIID-3937
Project: Teiid
Issue Type: Bug
Components: JDBC Connector
Affects Versions: 8.12.4
Environment: Ubuntu Trusty
Reporter: Don Krapohl
Assignee: Steven Hawkins
In the Impala translator, pushdown doesn't happen when two columns are multiplied in
the THEN portion of a CASE statement with decimal data type.
//this should push down but does not
CASE WHEN column1 IS NOT NULL
THEN column1 * column2
ELSE column3 END
//but you can multiply the columns by a constant and it will push down
CASE WHEN column1 IS NOT NULL
THEN column1 * 34567
ELSE column3 END
//or
CASE WHEN column1 IS NOT NULL
THEN 34567 * column2
ELSE column3 END
//or casting to consistent datatypes with DECIMAL output
CASE WHEN column1 IS NOT NULL
THEN cast(column1 as DECIMAL ) * cast(column2 as DECIMAL )
ELSE cast(column3 as DECIMAL ) END
//BUT output it as double with the cast statement above changed and it does push down (so
floating point works)
CASE WHEN column1 IS NOT NULL
THEN cast(column1 as double ) * cast(column2 as double)
ELSE cast(column3 as double) END
Source data types:
Column1 is DECIMAL
Column2 is BIGINT/LONG
Column3 is DECIMAL
Output column is DECIMAL
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)