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 1dadd550b5..1d9e82b6e5 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,10 +51,10 @@ proceduralStatement = [ label ] query | declareStatement | assignmentStatement -| ifStatement -| loopStatement -| forStatement -| whileStatement +| ifStatement [ labelReference ] +| loopStatement [ labelReference ] +| forStatement [ labelReference ] +| whileStatement [ labelReference ] | gotoStatement | continueStatement | exitStatement @@ -65,6 +65,9 @@ proceduralStatement = [ label ] label = '<<' identifier '>>' ; +labelReference = identifier +; + blockStatement = [ 'EXECUTE BLOCK AS' | 'DECLARE' ( declarationStatement ';' )+ ] 'BEGIN' proceduralStatements 'END' diff --git a/jOOQ/src/main/java/org/jooq/AssignmentTarget.java b/jOOQ/src/main/java/org/jooq/AssignmentTarget.java deleted file mode 100644 index 3ca5dc9deb..0000000000 --- a/jOOQ/src/main/java/org/jooq/AssignmentTarget.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Other licenses: - * ----------------------------------------------------------------------------- - * Commercial licenses for this work are available. These replace the above - * ASL 2.0 and offer limited warranties, support, maintenance, and commercial - * database integrations. - * - * For more information, please visit: http://www.jooq.org/licenses - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - */ -package org.jooq; - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/jOOQ/src/main/java/org/jooq/Declaration.java b/jOOQ/src/main/java/org/jooq/Declaration.java index a56ac42b2c..f71684a051 100644 --- a/jOOQ/src/main/java/org/jooq/Declaration.java +++ b/jOOQ/src/main/java/org/jooq/Declaration.java @@ -44,6 +44,21 @@ package org.jooq; + + + + + + + + + + + + + + + diff --git a/jOOQ/src/main/java/org/jooq/ForByStep.java b/jOOQ/src/main/java/org/jooq/ForByStep.java index 77d2ab96ee..7602b68feb 100644 --- a/jOOQ/src/main/java/org/jooq/ForByStep.java +++ b/jOOQ/src/main/java/org/jooq/ForByStep.java @@ -61,6 +61,8 @@ package org.jooq; + + diff --git a/jOOQ/src/main/java/org/jooq/ForInStep.java b/jOOQ/src/main/java/org/jooq/ForInStep.java index 55cfb94ed6..6aa35078bf 100644 --- a/jOOQ/src/main/java/org/jooq/ForInStep.java +++ b/jOOQ/src/main/java/org/jooq/ForInStep.java @@ -85,6 +85,8 @@ package org.jooq; + + diff --git a/jOOQ/src/main/java/org/jooq/Variable.java b/jOOQ/src/main/java/org/jooq/Variable.java index b6cd2b93b1..3ca5dc9deb 100644 --- a/jOOQ/src/main/java/org/jooq/Variable.java +++ b/jOOQ/src/main/java/org/jooq/Variable.java @@ -42,6 +42,21 @@ package org.jooq; + + + + + + + + + + + + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/BlockImpl.java b/jOOQ/src/main/java/org/jooq/impl/BlockImpl.java index 6004c478a0..bd6926a64a 100644 --- a/jOOQ/src/main/java/org/jooq/impl/BlockImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/BlockImpl.java @@ -227,9 +227,6 @@ final class BlockImpl extends AbstractQuery implements Block { - - - diff --git a/jOOQ/src/main/java/org/jooq/impl/Continue.java b/jOOQ/src/main/java/org/jooq/impl/Continue.java index bbcf39be63..3b3b476845 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Continue.java +++ b/jOOQ/src/main/java/org/jooq/impl/Continue.java @@ -67,6 +67,23 @@ package org.jooq.impl; + + + + + + + + + + + + + + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/DSL.java b/jOOQ/src/main/java/org/jooq/impl/DSL.java index d539e52924..8b9102bea2 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DSL.java +++ b/jOOQ/src/main/java/org/jooq/impl/DSL.java @@ -9962,6 +9962,8 @@ public class DSL { + + diff --git a/jOOQ/src/main/java/org/jooq/impl/DeclarationImpl.java b/jOOQ/src/main/java/org/jooq/impl/DeclarationImpl.java index 86f460e734..348ac967d6 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DeclarationImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/DeclarationImpl.java @@ -91,6 +91,15 @@ import static org.jooq.impl.DSL.field; + + + + + + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/Exit.java b/jOOQ/src/main/java/org/jooq/impl/Exit.java index bbcf39be63..5bd29c01c5 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Exit.java +++ b/jOOQ/src/main/java/org/jooq/impl/Exit.java @@ -37,6 +37,25 @@ */ package org.jooq.impl; +// ... + + + + + + + + + + + + + + + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/IfImpl.java b/jOOQ/src/main/java/org/jooq/impl/IfImpl.java index e0895f5395..8713961528 100644 --- a/jOOQ/src/main/java/org/jooq/impl/IfImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/IfImpl.java @@ -124,6 +124,40 @@ package org.jooq.impl; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/Keywords.java b/jOOQ/src/main/java/org/jooq/impl/Keywords.java index aae963c24c..07c2be77d5 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Keywords.java +++ b/jOOQ/src/main/java/org/jooq/impl/Keywords.java @@ -68,6 +68,7 @@ final class Keywords { static final Keyword K_BETWEEN = keyword("between"); static final Keyword K_BLOB = keyword("blob"); static final Keyword K_BOOLEAN = keyword("boolean"); + static final Keyword K_BREAK = keyword("break"); static final Keyword K_BULK_COLLECT_INTO = keyword("bulk collect into"); static final Keyword K_BY = keyword("by"); static final Keyword K_CACHE = keyword("cache"); diff --git a/jOOQ/src/main/java/org/jooq/impl/LabelImpl.java b/jOOQ/src/main/java/org/jooq/impl/LabelImpl.java index b1673470ac..9f67a562ef 100644 --- a/jOOQ/src/main/java/org/jooq/impl/LabelImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/LabelImpl.java @@ -62,6 +62,15 @@ package org.jooq.impl; + + + + + + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/LabelledStatement.java b/jOOQ/src/main/java/org/jooq/impl/LabelledStatement.java index 624f5cc18b..9f67a562ef 100644 --- a/jOOQ/src/main/java/org/jooq/impl/LabelledStatement.java +++ b/jOOQ/src/main/java/org/jooq/impl/LabelledStatement.java @@ -56,6 +56,20 @@ package org.jooq.impl; + + + + + + + + + + + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/LoopImpl.java b/jOOQ/src/main/java/org/jooq/impl/LoopImpl.java index d856dc4531..9bc6ca4dc5 100644 --- a/jOOQ/src/main/java/org/jooq/impl/LoopImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/LoopImpl.java @@ -100,6 +100,51 @@ 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 9e416fa988..529e7096f9 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java @@ -2211,6 +2211,9 @@ final class ParserImpl implements Parser { parseKeyword(ctx, "BEGIN"); statements.addAll(parseStatements(ctx, "END")); parseKeyword(ctx, "END"); + + + parse(ctx, ';'); return ctx.dsl.begin(statements); } @@ -2569,6 +2572,8 @@ final class ParserImpl implements Parser { + + diff --git a/jOOQ/src/main/java/org/jooq/impl/VariableImpl.java b/jOOQ/src/main/java/org/jooq/impl/VariableImpl.java index 3d4245d8ea..72e1c2d8fc 100644 --- a/jOOQ/src/main/java/org/jooq/impl/VariableImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/VariableImpl.java @@ -72,6 +72,15 @@ package org.jooq.impl; + + + + + + + + +