From 6c60eb37d705cc5355053da0cdb696d4e5215d80 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 13 Nov 2019 15:09:34 +0100 Subject: [PATCH] [jOOQ/jOOQ#9545] Parser cannot parse views with WITH --- jOOQ/src/main/java/org/jooq/impl/ParserImpl.java | 6 +++++- 1 file changed, 5 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 87fd57d004..a10cb768fe 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java @@ -1017,6 +1017,10 @@ final class ParserImpl implements Parser { return result; } + private static final Select parseWithOrSelect(ParserContext ctx) { + return peekKeyword(ctx, "WITH") ? (Select) parseWith(ctx, true) : parseSelect(ctx, null, null); + } + private static final SelectQueryImpl parseSelect(ParserContext ctx) { return parseSelect(ctx, null, null); } @@ -2941,7 +2945,7 @@ final class ParserImpl implements Parser { } parseKeyword(ctx, "AS"); - Select select = parseSelect(ctx); + Select select = parseWithOrSelect(ctx); if (fields.length > 0 && fields.length != select.getSelect().size()) throw ctx.exception("Select list size (" + select.getSelect().size() + ") must match declared field size (" + fields.length + ")");