[teiid-issues] [JBoss JIRA] (TEIID-5277) OData4 translator doesn't correctly translate LOCATE function to INDEXOF

Jan Martiska (JIRA) issues at jboss.org
Mon Mar 12 07:39:02 EDT 2018


Jan Martiska created TEIID-5277:
-----------------------------------

             Summary: OData4 translator doesn't correctly translate LOCATE function to INDEXOF
                 Key: TEIID-5277
                 URL: https://issues.jboss.org/browse/TEIID-5277
             Project: Teiid
          Issue Type: Bug
          Components: OData
    Affects Versions: 8.12.11.6_4
            Reporter: Jan Martiska
            Assignee: Steven Hawkins


Suppose this query against an OData4-backed view:
{noformat}
SELECT STRINGKEY FROM BQT1.SmallA WHERE LOCATE('1', stringkey) = 1
{noformat}
The WHERE clause gets translated into 
{noformat}
filter=indexof('1',stringkey) eq 1
{noformat}

There are two issues with this:
- the arguments of the {{indexof}} function should be in the opposite order (the sought-after string goes second)
- {{indexof}} function indexes characters in strings from 0 whereas {{LOCATE}} from 1, this needs to be taken into account

The correct filter in this case should be:
{noformat}
filter=indexof(stringkey,'1') eq 0
{noformat}

See http://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part2-url-conventions.html#startswithurl5.1.2.4.3




--
This message was sent by Atlassian JIRA
(v7.5.0#75005)


More information about the teiid-issues mailing list