[jOOQ/jOOQ#7106] Add support for procedural transaction statements - WIP
This includes: - Partial support for Db2, Firebird, SQL Server
This commit is contained in:
parent
a90243a275
commit
bb7a8b4c3b
@ -371,6 +371,7 @@ final class Keywords {
|
||||
static final Keyword K_ROWS_FROM = keyword("rows from");
|
||||
static final Keyword K_ROWS_ONLY = keyword("rows only");
|
||||
static final Keyword K_ROWS_WITH_TIES = keyword("rows with ties");
|
||||
static final Keyword K_SAVE = keyword("save");
|
||||
static final Keyword K_SAVEPOINT = keyword("savepoint");
|
||||
static final Keyword K_SCHEMA = keyword("schema");
|
||||
static final Keyword K_SCN = keyword("scn");
|
||||
|
||||
@ -89,7 +89,21 @@ implements
|
||||
|
||||
@Override
|
||||
public final void accept(Context<?> ctx) {
|
||||
ctx.visit(K_RELEASE).sql(' ').visit(K_SAVEPOINT).sql(' ').visit(name);
|
||||
switch (ctx.family()) {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
default:
|
||||
ctx.visit(K_RELEASE).sql(' ').visit(K_SAVEPOINT).sql(' ').visit(name);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
@ -114,10 +114,25 @@ implements
|
||||
|
||||
@Override
|
||||
public final void accept(Context<?> ctx) {
|
||||
ctx.visit(K_ROLLBACK);
|
||||
switch (ctx.family()) {
|
||||
|
||||
if (toSavepoint != null)
|
||||
ctx.sql(' ').visit(K_TO).sql(' ').visit(K_SAVEPOINT).sql(' ').visit(toSavepoint);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
default:
|
||||
ctx.visit(K_ROLLBACK);
|
||||
|
||||
if (toSavepoint != null)
|
||||
ctx.sql(' ').visit(K_TO).sql(' ').visit(K_SAVEPOINT).sql(' ').visit(toSavepoint);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
@ -89,7 +89,19 @@ implements
|
||||
|
||||
@Override
|
||||
public final void accept(Context<?> ctx) {
|
||||
ctx.visit(K_SAVEPOINT).sql(' ').visit(name);
|
||||
switch (ctx.family()) {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
default:
|
||||
ctx.visit(K_SAVEPOINT).sql(' ').visit(name);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
@ -92,6 +92,22 @@ implements
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
case FIREBIRD: {
|
||||
ctx.visit(K_SET).sql(' ').visit(K_TRANSACTION).sql(' ').visit(K_READ).sql(' ').visit(K_WRITE);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
|
||||
case H2: {
|
||||
ctx.visit(K_BEGIN).sql(' ').visit(K_TRANSACTION);
|
||||
break;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user