]
Steven Hawkins commented on TEIID-4703:
---------------------------------------
Ideally you could provide something that is sanitized. Starting with a representative
user query and the translator configuration from the VDB would be a good start. For whole
logs if it's not appropriate to post here, you can reach out through
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.