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)