[hibernate-dev] HHH-1123 - Cannot put more than 1000 elements in a InExpression

Steve Ebersole steve at hibernate.org
Wed Nov 30 16:20:29 EST 2011


Splitting is not always an option.  Consider a predicate like:

... where a in (x1, ... x2000) and b in (y1, ... y2000) ...

If you split this up, you will have misses.  Yes, it works if you can 
keep it all in one query because you can structure it to maintain the 
original semantics.  However, please read the comments on that JIRA 
issue.  For some databases, this restriction is not just on the number 
of elements in a in-list, but on the number of parameters overall.  
Splitting these 2 in-lists about into 4 does not address that.

I commented on the issue that I am actually inclined to simply reject 
this one.  In fact, I thought we already did.  Maybe that was another 
earlier one?


On Wed 30 Nov 2011 04:45:55 AM CST, Emmanuel Bernard wrote:
> Also note that there is a limit for the query size globally in some vendors and that people relieved from HHH-1123 cal fall into the second limit.
> A solution would be for Hibernate to split one query into several but I'm not sure I like the idea.
>
> Emmanuel
>
> On 29 nov. 2011, at 21:29, Łukasz Antoniak wrote:
>
>> Hi all!
>>
>> Recently I had a closer look at HHH-1123 issue. This bug affects both -
>> Criteria API and HQL. I have introduced
>> Dialect#maximumInExpressionElements() method which returns maximum
>> number of allowed elements in a single SQL IN clause, or null treated as
>> infinite. The change of InExpression was very easy. However, fixing this
>> bug for HQL queries requires modification of ParameterMetadata
>> (namedDescriptorMap cannot remain unmodifiable), as well as
>> AbstractQueryImpl (queryString). As I don't see any other solution, I
>> wanted to ask you guys for suggestions. Is it the only possible way of
>> fixing this issue? Finally, shall we really fix this? This is a DB
>> vendor limitation, but 40 user gave their vote for it.
>>
>> Regards,
>> Lukasz Antoniak
>> _______________________________________________
>> hibernate-dev mailing list
>> hibernate-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/hibernate-dev
>
>
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hibernate-dev

-- 
steve at hibernate.org
http://hibernate.org



More information about the hibernate-dev mailing list