Available in versions: Dev (3.19) | Latest (3.18) | 3.17

This is experimental functionality, and as such subject to change. Use at your own risk!

Merge IN predicates

Applies to ✅ Open Source Edition   ✅ Express Edition   ✅ Professional Edition   ✅ Enterprise Edition

An AND predicate combining IN predicates that share the same operands can often be merged into a single IN predicate comparing the left operand with the intersection of the right IN lists.

Using Settings.transformPatternsMergeInPredicates, the following transformations can be achieved:

-- With Settings.transformPatternsMergeInPredicates active, this:
SELECT * FROM tab WHERE x IN (a, b, c) AND x IN (b, c, d);

-- ... is transformed into the equivalent expression:
SELECT * FROM tab WHERE x IN (b, c);


Do you have any feedback about this page? We'd love to hear it!

The jOOQ Logo