[teiid-issues] [JBoss JIRA] (TEIID-3937) Multiplying two columns in CASE statement overrides pushdown (Impala)

Steven Hawkins (JIRA) issues at jboss.org
Mon Feb 1 10:54:00 EST 2016


     [ https://issues.jboss.org/browse/TEIID-3937?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Steven Hawkins resolved TEIID-3937.
-----------------------------------
    Fix Version/s: 9.0
       Resolution: Done


This is now addressed in 9.0

> It's not very straightforward, for what that may be worth, even using the overridden settings.xml

Can you describe in more detail what you are seeing (ideally in a forum post) so that we can get that captured / addressed?

> 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
>             Fix For: 9.0
>
>
> 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)


More information about the teiid-issues mailing list