From 297868041e893c2b655f41c92d94e6a1a2b313e8 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 26 Jun 2019 11:59:46 +0200 Subject: [PATCH] [jOOQ/jOOQ#8852] Support parsing empty IN lists --- jOOQ/src/main/java/org/jooq/impl/ParserImpl.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java index efb074bc02..57734b309f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java @@ -301,6 +301,7 @@ import static org.jooq.impl.Tools.EMPTY_COMMON_TABLE_EXPRESSION; import static org.jooq.impl.Tools.EMPTY_FIELD; import static org.jooq.impl.Tools.EMPTY_NAME; import static org.jooq.impl.Tools.EMPTY_QUERYPART; +import static org.jooq.impl.Tools.EMPTY_ROWN; import static org.jooq.impl.Tools.EMPTY_SORTFIELD; import static org.jooq.tools.StringUtils.defaultIfNull; @@ -4342,7 +4343,15 @@ final class ParserImpl implements Parser { Condition result; parse(ctx, '('); - if (peekKeyword(ctx, "SELECT") || peekKeyword(ctx, "SEL")) + if (peek(ctx, ')')) + result = not + ? left instanceof Field + ? ((Field) left).notIn(EMPTY_FIELD) + : ((RowN) left).notIn(EMPTY_ROWN) + : left instanceof Field + ? ((Field) left).in(EMPTY_FIELD) + : ((RowN) left).in(EMPTY_ROWN); + else if (peekKeyword(ctx, "SELECT") || peekKeyword(ctx, "SEL")) result = not ? left instanceof Field ? ((Field) left).notIn(parseSelect(ctx, 1))