[teiid-issues] [JBoss JIRA] (TEIID-2366) If where clause contains both equal and greater then conditions then query may return no results

Steven Hawkins (JIRA) jira-events at lists.jboss.org
Tue Jan 29 10:28:47 EST 2013


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

Steven Hawkins resolved TEIID-2366.
-----------------------------------

        Labels: query, where  (was: query where)
    Resolution: Done


You are correct about where the issue (that cc, not cc1 should to be passed into the evaluation) lay.  That has been corrected and also ensured that single item IN predicates are returned as equality, which is generally a contract that the rewrite maintains.
                
> If where clause contains both equal and greater then conditions then query may return no results
> ------------------------------------------------------------------------------------------------
>
>                 Key: TEIID-2366
>                 URL: https://issues.jboss.org/browse/TEIID-2366
>             Project: Teiid
>          Issue Type: Bug
>          Components: Query Engine
>    Affects Versions: 7.4
>            Reporter: Paul Lysak
>            Assignee: Steven Hawkins
>              Labels: query,, where
>             Fix For: 8.3
>
>
> If WHERE clause contains '>' and '=' conditions for the same field then query may produce no result - depending on conditions order.
> The problem seems to be in org.teiid.query.rewriter.QueryRewriter class, method rewriteAndConjunct(). Pay attention to following piece of code:
> ... if (cc1.getOperator() == CompareCriteria.EQ) {
>    if (!Evaluator.compare(cc1, ((Constant)cc1.getRightExpression()).getValue(), ((Constant)cc.getRightExpression()).getValue())) {
>   return FALSE_CRITERIA;
>   }
> Note that cc1 (which is guaranteed to have EQ criterion) is passed to Evaluator.compare. Thus right expressions of cc and cc1 are required to be equal. But if we have one contition EQ and another GT then it should instead check if right side of EQ is bigger then right side of GT.
> Bug TEIID-1704 describes a bit similar situation but it is still a different case.

--
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