From 51759a6cee6ec9f1bc02bcd3ab338db466a290d9 Mon Sep 17 00:00:00 2001 From: lukaseder Date: Thu, 31 Jan 2019 16:30:14 +0100 Subject: [PATCH] [#5309] [#7518] Wrong parser implementation --- .../java/org/jooq/impl/CreateTableImpl.java | 26 ++++++++++--------- .../main/java/org/jooq/impl/ParserImpl.java | 9 ++++--- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/CreateTableImpl.java b/jOOQ/src/main/java/org/jooq/impl/CreateTableImpl.java index 2ac067d0d1..3b8da76225 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CreateTableImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CreateTableImpl.java @@ -654,22 +654,24 @@ final class CreateTableImpl extends AbstractQuery implements } } - private final void acceptSelectInto(Context ctx) { - if (FALSE.equals(withData)) - ctx.data(DATA_SELECT_NO_DATA, true); - ctx.data(DATA_SELECT_INTO_TABLE, table); - if (!columnFields.isEmpty()) - ctx.visit(select(asterisk()).from(table(select).as(table(name("t")), columnFields.toArray(EMPTY_FIELD)))); - else - ctx.visit(select); - ctx.data().remove(DATA_SELECT_INTO_TABLE); - if (FALSE.equals(withData)) - ctx.data().remove(DATA_SELECT_NO_DATA); - } + + + + + + + + + + + + + + private enum OnCommit { DELETE_ROWS, diff --git a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java index a4ddc5c448..558ae8aa71 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java @@ -2874,10 +2874,11 @@ final class ParserImpl implements Parser { Name fieldName = parseIdentifier(ctx); DataType type = null; - if (ctas == null && (peek(ctx, ',') || peek(ctx, ')'))) - ctas = true; - else - ctas = false; + if (ctas == null) + if (peek(ctx, ',') || peek(ctx, ')')) + ctas = true; + else + ctas = false; type = !TRUE.equals(ctas) ? parseDataType(ctx)