[teiid-issues] [JBoss JIRA] (TEIID-4703) The Oracle translator did not limit the number of values in "IN" clause, which were required by Oracle database.

SHI HONG CHIN (JIRA) issues at jboss.org
Mon Jan 16 22:12:00 EST 2017


SHI HONG CHIN created TEIID-4703:
------------------------------------

             Summary: The Oracle translator did not limit the number of values in "IN" clause, which were required by Oracle database.
                 Key: TEIID-4703
                 URL: https://issues.jboss.org/browse/TEIID-4703
             Project: Teiid
          Issue Type: Bug
    Affects Versions: 8.13.4
            Reporter: SHI HONG CHIN
            Assignee: Steven Hawkins


Database: Oracle + Firebird + Microsoft SQL Server.

Oracle limit the maximum number of values in "IN" clause to 1000.

In teiid, I am using the built-in Oracle translator.

When running some SQL queries, Oracle database reported an error "No more data to read from socket". I had set the log level of Teiid to "ALL". According to the WildFly log files, Teiid executed a query with more than 10000 values in the "IN" clause.

I tried to copy the whole SQL from WildFly log file into Oracle SQL Developer and execute it, the same error occurred. Then, I tried to edit the query by delete many values from the "IN" clause and then run the query again, and the query success.

For teiid, as a workaround, I overrided the oracle translator and set the property of "MaxInCriteriaSize" to 50. After that, all SQL queries run success without any issue.

I suggest that, by default, the built-in Oracle translator limit the number of values in "IN" clause to maximum 1000 values, and this behavior can be changed through properties.



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)


More information about the teiid-issues mailing list