[#8285] Add support for REPEAT statements in procedural blocks

This commit is contained in:
lukaseder 2019-02-05 10:19:07 +01:00
parent 9958df4f03
commit 3cb3a14ce1
13 changed files with 160 additions and 0 deletions

View File

@ -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
;

View File

@ -48,6 +48,14 @@ package org.jooq;

View File

@ -87,6 +87,16 @@ package org.jooq;

View File

@ -48,6 +48,14 @@ package org.jooq;

View File

@ -56,6 +56,16 @@ package org.jooq;

View File

@ -50,6 +50,15 @@ package org.jooq;

View File

@ -71,6 +71,14 @@ package org.jooq;

View File

@ -50,6 +50,15 @@ package org.jooq;

View File

@ -74,6 +74,16 @@ package org.jooq;

View File

@ -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 {

View File

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

View File

@ -162,6 +162,43 @@ package org.jooq.impl;

View File

@ -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 {