[teiid-issues] [JBoss JIRA] (TEIID-2188) When using CONCAT2(x, y), can the source query be changed to not include the CASE statements and let Oracle do the NULL compare

Steven Hawkins (JIRA) jira-events at lists.jboss.org
Fri Sep 14 13:22:32 EDT 2012


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

Steven Hawkins resolved TEIID-2188.
-----------------------------------

    Fix Version/s: 8.2
       Resolution: Done


Delayed the rewrite of concat2 to concat until we've reached the source.  Currently only the oracle executionfactory has support for concat2, but it looks it could be added for pg 9.3+ as well.
                
> When using CONCAT2(x, y), can the source query be changed to not include the CASE statements and let Oracle do the NULL compare
> -------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: TEIID-2188
>                 URL: https://issues.jboss.org/browse/TEIID-2188
>             Project: Teiid
>          Issue Type: Enhancement
>          Components: Query Engine
>    Affects Versions: 7.4.4
>            Reporter: Van Halbert
>            Assignee: Steven Hawkins
>             Fix For: 8.2
>
>
> When CONCAT2(x, y) is used, the rewritten query is very verbose in adding a CASE statement to check for nulls.  Can the rewritten query not include the CASE statements and just let Oracle do the compare, because it can do it more efficiently within the CONCAT call?
> Example:
> select concat2(f1,f2) from table1
> results in
> SELECT c_0 FROM (SELECT CASE WHEN to_char(g_0.f1) IS NULL AND g_0.f2 IS NULL THEN NULL ELSE concat(nvl(to_char(g_0.f1), ''), nvl(g_0.f2, '')) END AS c_0 FROM table1 g_0)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the teiid-issues mailing list