diff --git a/jOOQ-manual/src/main/resources/org/jooq/web/grammar-3.12.txt b/jOOQ-manual/src/main/resources/org/jooq/web/grammar-3.12.txt index feb6b8f2ed..2e62ac7afe 100644 --- a/jOOQ-manual/src/main/resources/org/jooq/web/grammar-3.12.txt +++ b/jOOQ-manual/src/main/resources/org/jooq/web/grammar-3.12.txt @@ -51,6 +51,7 @@ proceduralStatement = | declareStatement | assignmentStatement | ifStatement +| whileStatement | nullStatement ; @@ -80,6 +81,10 @@ ifStatement = 'END IF' ; +whileStatement = + 'WHILE' condition 'LOOP' proceduralStatements 'END LOOP' +; + nullStatement = 'NULL' ; diff --git a/jOOQ/src/main/java/org/jooq/impl/DSL.java b/jOOQ/src/main/java/org/jooq/impl/DSL.java index 7f5dfb00d8..b425334bfa 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DSL.java +++ b/jOOQ/src/main/java/org/jooq/impl/DSL.java @@ -221,6 +221,7 @@ import org.jooq.InsertValuesStep9; import org.jooq.InsertValuesStepN; import org.jooq.Keyword; // ... +// ... import org.jooq.Merge; import org.jooq.MergeKeyStep1; import org.jooq.MergeKeyStep10; @@ -9794,6 +9795,15 @@ public class DSL { + + + + + + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/Keywords.java b/jOOQ/src/main/java/org/jooq/impl/Keywords.java index d057c7d5ee..0e9782fe41 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Keywords.java +++ b/jOOQ/src/main/java/org/jooq/impl/Keywords.java @@ -302,6 +302,7 @@ final class Keywords { static final Keyword K_VIEW = keyword("view"); static final Keyword K_WHEN = keyword("when"); static final Keyword K_WHERE = keyword("where"); + static final Keyword K_WHILE = keyword("while"); static final Keyword K_WINDOW = keyword("window"); static final Keyword K_WITH = keyword("with"); static final Keyword K_WITH_CHECK_OPTION = keyword("with check option"); diff --git a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java index 4e72ed6f5b..f6a5f89e86 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java @@ -260,6 +260,7 @@ import static org.jooq.impl.DSL.varPop; import static org.jooq.impl.DSL.varSamp; import static org.jooq.impl.DSL.week; import static org.jooq.impl.DSL.when; +import static org.jooq.impl.DSL.while_; import static org.jooq.impl.DSL.year; import static org.jooq.impl.DSL.zero; import static org.jooq.impl.Keywords.K_DELETE; @@ -2275,6 +2276,16 @@ final class ParserImpl implements Parser { + ; + + break; + + case 'w': + case 'W': + if (peekKeyword(ctx, "WHILE") && ctx.requireProEdition()) + + + ; break; @@ -2369,6 +2380,15 @@ final class ParserImpl implements Parser { + + + + + + + + +