From 816ca6b5a8cbea3bd5954e634bae772dfa243bae Mon Sep 17 00:00:00 2001 From: lukaseder Date: Wed, 10 Oct 2018 16:11:30 +0200 Subject: [PATCH] [#5601] IN list padding setting should also apply to row IN predicates --- jOOQ/src/main/java/org/jooq/impl/InCondition.java | 12 +++++------- jOOQ/src/main/java/org/jooq/impl/RowInCondition.java | 3 ++- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/InCondition.java b/jOOQ/src/main/java/org/jooq/impl/InCondition.java index b5eae54bc2..a658de5919 100644 --- a/jOOQ/src/main/java/org/jooq/impl/InCondition.java +++ b/jOOQ/src/main/java/org/jooq/impl/InCondition.java @@ -161,9 +161,9 @@ final class InCondition extends AbstractCondition { } } - private static List> padded(Context ctx, List> list) { + static List padded(Context ctx, List list) { return ctx.paramType() == INDEXED && TRUE.equals(ctx.settings().isInListPadding()) - ? new PaddedList>(list, REQUIRES_IN_LIMIT.contains(ctx.family()) + ? new PaddedList(list, REQUIRES_IN_LIMIT.contains(ctx.family()) ? IN_LIMIT : Integer.MAX_VALUE, defaultIfNull(ctx.settings().getInListPadBase(), 2)) @@ -179,10 +179,9 @@ final class InCondition extends AbstractCondition { .visit(comparator.toKeyword()) .sql(" ("); - if (subValues.size() > 1) { + if (subValues.size() > 1) ctx.formatIndentStart() .formatNewLine(); - } String separator = ""; for (Field value : subValues) { @@ -193,15 +192,14 @@ final class InCondition extends AbstractCondition { separator = ", "; } - if (subValues.size() > 1) { + if (subValues.size() > 1) ctx.formatIndentEnd() .formatNewLine(); - } ctx.sql(')'); } - private static class PaddedList extends AbstractList { + static class PaddedList extends AbstractList { private final List delegate; private final int realSize; private final int padSize; diff --git a/jOOQ/src/main/java/org/jooq/impl/RowInCondition.java b/jOOQ/src/main/java/org/jooq/impl/RowInCondition.java index a481466e8b..32dd5d491a 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowInCondition.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowInCondition.java @@ -57,6 +57,7 @@ import static org.jooq.SQLDialect.SQLITE; // ... import static org.jooq.impl.DSL.falseCondition; import static org.jooq.impl.DSL.trueCondition; +import static org.jooq.impl.InCondition.padded; import java.util.ArrayList; import java.util.EnumSet; @@ -145,7 +146,7 @@ final class RowInCondition extends AbstractCondition { .sql(' ') .visit(comparator.toKeyword()) .sql(" (") - .visit(right) + .visit(new QueryPartList(padded(ctx, right))) .sql(')'); } }