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 23cdc4faa2..23bed067b4 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 @@ -55,6 +55,7 @@ proceduralStatement = [ label ] | loopStatement [ labelReference ] | forStatement [ labelReference ] | whileStatement [ labelReference ] +| repeatStatement [ labelReference ] | gotoStatement | continueStatement | exitStatement @@ -113,6 +114,10 @@ whileStatement = 'WHILE' condition ( loopStatement | 'DO' proceduralStatements 'END WHILE' ) ; +repeatStatement = + 'REPEAT' proceduralStatements 'UNTIL' condition 'END REPEAT' +; + gotoStatement = 'GOTO' identifier ; diff --git a/jOOQ/src/main/java/org/jooq/ContinueWhenStep.java b/jOOQ/src/main/java/org/jooq/ContinueWhenStep.java index 7de54f0370..45b3b50fe5 100644 --- a/jOOQ/src/main/java/org/jooq/ContinueWhenStep.java +++ b/jOOQ/src/main/java/org/jooq/ContinueWhenStep.java @@ -48,6 +48,14 @@ package org.jooq; + + + + + + + + diff --git a/jOOQ/src/main/java/org/jooq/Declaration.java b/jOOQ/src/main/java/org/jooq/Declaration.java index f94dc58337..4357e8be0d 100644 --- a/jOOQ/src/main/java/org/jooq/Declaration.java +++ b/jOOQ/src/main/java/org/jooq/Declaration.java @@ -87,6 +87,16 @@ package org.jooq; + + + + + + + + + + diff --git a/jOOQ/src/main/java/org/jooq/ExitWhenStep.java b/jOOQ/src/main/java/org/jooq/ExitWhenStep.java index 7de54f0370..45b3b50fe5 100644 --- a/jOOQ/src/main/java/org/jooq/ExitWhenStep.java +++ b/jOOQ/src/main/java/org/jooq/ExitWhenStep.java @@ -48,6 +48,14 @@ package org.jooq; + + + + + + + + diff --git a/jOOQ/src/main/java/org/jooq/IfElseStep.java b/jOOQ/src/main/java/org/jooq/IfElseStep.java index 6bb5e944bb..b3e6a02663 100644 --- a/jOOQ/src/main/java/org/jooq/IfElseStep.java +++ b/jOOQ/src/main/java/org/jooq/IfElseStep.java @@ -56,6 +56,16 @@ package org.jooq; + + + + + + + + + + diff --git a/jOOQ/src/main/java/org/jooq/IfThenStep.java b/jOOQ/src/main/java/org/jooq/IfThenStep.java index ed55613db2..00b8e1d56f 100644 --- a/jOOQ/src/main/java/org/jooq/IfThenStep.java +++ b/jOOQ/src/main/java/org/jooq/IfThenStep.java @@ -50,6 +50,15 @@ package org.jooq; + + + + + + + + + diff --git a/jOOQ/src/main/java/org/jooq/Label.java b/jOOQ/src/main/java/org/jooq/Label.java index 9745199079..55cfb94ed6 100644 --- a/jOOQ/src/main/java/org/jooq/Label.java +++ b/jOOQ/src/main/java/org/jooq/Label.java @@ -71,6 +71,14 @@ package org.jooq; + + + + + + + + diff --git a/jOOQ/src/main/java/org/jooq/LoopStep.java b/jOOQ/src/main/java/org/jooq/LoopStep.java index ed55613db2..00b8e1d56f 100644 --- a/jOOQ/src/main/java/org/jooq/LoopStep.java +++ b/jOOQ/src/main/java/org/jooq/LoopStep.java @@ -50,6 +50,15 @@ package org.jooq; + + + + + + + + + diff --git a/jOOQ/src/main/java/org/jooq/Variable.java b/jOOQ/src/main/java/org/jooq/Variable.java index ea6c777be5..b3d8367d8f 100644 --- a/jOOQ/src/main/java/org/jooq/Variable.java +++ b/jOOQ/src/main/java/org/jooq/Variable.java @@ -74,6 +74,16 @@ package org.jooq; + + + + + + + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/DSL.java b/jOOQ/src/main/java/org/jooq/impl/DSL.java index b387f5eb4b..13598df452 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DSL.java +++ b/jOOQ/src/main/java/org/jooq/impl/DSL.java @@ -290,6 +290,7 @@ import org.jooq.Record8; import org.jooq.Record9; import org.jooq.RecordHandler; import org.jooq.RecordType; +// ... import org.jooq.Result; import org.jooq.ResultQuery; import org.jooq.RevokeOnStep; @@ -10020,6 +10021,28 @@ 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 42b5539544..98d4f30e7c 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Keywords.java +++ b/jOOQ/src/main/java/org/jooq/impl/Keywords.java @@ -245,6 +245,7 @@ final class Keywords { static final Keyword K_RENAME_OBJECT = keyword("rename object"); static final Keyword K_RENAME_TABLE = keyword("rename table"); static final Keyword K_RENAME_TO = keyword("rename to"); + static final Keyword K_REPEAT = keyword("repeat"); static final Keyword K_REPLACE = keyword("replace"); static final Keyword K_RESPECT_NULLS = keyword("respect nulls"); static final Keyword K_RESTART = keyword("restart"); @@ -299,6 +300,7 @@ final class Keywords { static final Keyword K_UNBOUNDED_PRECEDING = keyword("unbounded preceding"); static final Keyword K_UNIQUE = keyword("unique"); static final Keyword K_UNNEST = keyword("unnest"); + static final Keyword K_UNTIL = keyword("until"); static final Keyword K_UPDATE = keyword("update"); static final Keyword K_UPSERT = keyword("upsert"); static final Keyword K_USE = keyword("use"); diff --git a/jOOQ/src/main/java/org/jooq/impl/LoopImpl.java b/jOOQ/src/main/java/org/jooq/impl/LoopImpl.java index f292852914..2afecffd00 100644 --- a/jOOQ/src/main/java/org/jooq/impl/LoopImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/LoopImpl.java @@ -162,6 +162,43 @@ package org.jooq.impl; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java index 55189d9956..092ac38979 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java @@ -2413,6 +2413,16 @@ final class ParserImpl implements Parser { break; + case 'r': + case 'R': + if (peekKeyword(ctx, "REPEAT") && ctx.requireProEdition()) + + + + ; + + break; + case 's': case 'S': if (peekKeyword(ctx, "SET") && ctx.requireProEdition()) @@ -2631,6 +2641,17 @@ final class ParserImpl implements Parser { + + + + + + + + + + +