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 + ")");