From 64c4ef7fae0c6745b79916bdd20efe8aa36bb848 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Tue, 3 Jan 2023 21:07:34 +0100 Subject: [PATCH] [jOOQ/jOOQ#7106] Add SQLite support --- jOOQ/src/main/java/org/jooq/DSLContext.java | 14 +++++++------- .../org/jooq/RollbackToSavepointStep.java | 4 ++-- jOOQ/src/main/java/org/jooq/impl/DSL.java | 14 +++++++------- .../main/java/org/jooq/impl/ParserImpl.java | 19 ++++++++++++++----- .../java/org/jooq/impl/StartTransaction.java | 3 ++- 5 files changed, 32 insertions(+), 22 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/DSLContext.java b/jOOQ/src/main/java/org/jooq/DSLContext.java index 4b85edfe65..8248dca5f7 100644 --- a/jOOQ/src/main/java/org/jooq/DSLContext.java +++ b/jOOQ/src/main/java/org/jooq/DSLContext.java @@ -11246,7 +11246,7 @@ public interface DSLContext extends Scope { * @see DSL#startTransaction() */ @NotNull @CheckReturnValue - @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) + @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) Query startTransaction(); /** @@ -11257,7 +11257,7 @@ public interface DSLContext extends Scope { * @see DSL#savepoint(String) */ @NotNull @CheckReturnValue - @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) + @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) Query savepoint(@Stringly.Name String name); /** @@ -11268,7 +11268,7 @@ public interface DSLContext extends Scope { * @see DSL#savepoint(Name) */ @NotNull @CheckReturnValue - @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) + @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) Query savepoint(Name name); /** @@ -11279,7 +11279,7 @@ public interface DSLContext extends Scope { * @see DSL#releaseSavepoint(String) */ @NotNull @CheckReturnValue - @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) + @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) Query releaseSavepoint(@Stringly.Name String name); /** @@ -11290,7 +11290,7 @@ public interface DSLContext extends Scope { * @see DSL#releaseSavepoint(Name) */ @NotNull @CheckReturnValue - @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) + @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) Query releaseSavepoint(Name name); /** @@ -11301,7 +11301,7 @@ public interface DSLContext extends Scope { * @see DSL#commit() */ @NotNull @CheckReturnValue - @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) + @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) Query commit(); /** @@ -11312,7 +11312,7 @@ public interface DSLContext extends Scope { * @see DSL#rollback() */ @NotNull @CheckReturnValue - @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) + @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) RollbackToSavepointStep rollback(); diff --git a/jOOQ/src/main/java/org/jooq/RollbackToSavepointStep.java b/jOOQ/src/main/java/org/jooq/RollbackToSavepointStep.java index 56cc52037f..e2d46a8084 100644 --- a/jOOQ/src/main/java/org/jooq/RollbackToSavepointStep.java +++ b/jOOQ/src/main/java/org/jooq/RollbackToSavepointStep.java @@ -73,14 +73,14 @@ public interface RollbackToSavepointStep extends Query { /** * Add the TO SAVEPOINT clause to the ROLLBACK statement. */ - @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) + @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) @NotNull @CheckReturnValue Query toSavepoint(@Stringly.Name String toSavepoint); /** * Add the TO SAVEPOINT clause to the ROLLBACK statement. */ - @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) + @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) @NotNull @CheckReturnValue Query toSavepoint(Name toSavepoint); } diff --git a/jOOQ/src/main/java/org/jooq/impl/DSL.java b/jOOQ/src/main/java/org/jooq/impl/DSL.java index 72541b775b..6bb7756bbf 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DSL.java +++ b/jOOQ/src/main/java/org/jooq/impl/DSL.java @@ -10282,7 +10282,7 @@ public class DSL { * @see DSLContext#startTransaction() */ @NotNull @CheckReturnValue - @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) + @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) public static org.jooq.Query startTransaction() { return dsl().startTransaction(); } @@ -10299,7 +10299,7 @@ public class DSL { * @see DSLContext#savepoint(String) */ @NotNull @CheckReturnValue - @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) + @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) public static org.jooq.Query savepoint(@Stringly.Name String name) { return dsl().savepoint(name); } @@ -10316,7 +10316,7 @@ public class DSL { * @see DSLContext#savepoint(Name) */ @NotNull @CheckReturnValue - @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) + @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) public static org.jooq.Query savepoint(Name name) { return dsl().savepoint(name); } @@ -10333,7 +10333,7 @@ public class DSL { * @see DSLContext#releaseSavepoint(String) */ @NotNull @CheckReturnValue - @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) + @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) public static org.jooq.Query releaseSavepoint(@Stringly.Name String name) { return dsl().releaseSavepoint(name); } @@ -10350,7 +10350,7 @@ public class DSL { * @see DSLContext#releaseSavepoint(Name) */ @NotNull @CheckReturnValue - @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) + @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) public static org.jooq.Query releaseSavepoint(Name name) { return dsl().releaseSavepoint(name); } @@ -10367,7 +10367,7 @@ public class DSL { * @see DSLContext#commit() */ @NotNull @CheckReturnValue - @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) + @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) public static org.jooq.Query commit() { return dsl().commit(); } @@ -10384,7 +10384,7 @@ public class DSL { * @see DSLContext#rollback() */ @NotNull @CheckReturnValue - @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) + @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) public static org.jooq.RollbackToSavepointStep rollback() { return dsl().rollback(); } diff --git a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java index dcb59223f8..6b4a7726ca 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java @@ -3474,7 +3474,8 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { } private final Query parseReleaseSavepoint() { - parseKeyword("RELEASE SAVEPOINT"); + parseKeyword("RELEASE"); + parseKeywordIf("SAVEPOINT"); return dsl.releaseSavepoint(parseIdentifier()); } @@ -3487,11 +3488,19 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { private final Query parseRollback() { parseKeyword("ROLLBACK"); - if (parseKeywordIf("TRAN", "TRANSACTION", "TO SAVEPOINT")) + if (parseKeywordIf("WORK")) + return dsl.rollback(); + else if (parseKeywordIf( + "TRAN", + "TRANSACTION TO SAVEPOINT", + "TRANSACTION TO", + "TRANSACTION", + "TO SAVEPOINT", + "TO" + )) return dsl.rollback().toSavepoint(parseIdentifier()); - - parseKeywordIf("WORK"); - return dsl.rollback(); + else + return dsl.rollback(); } private final Block parseDo() { diff --git a/jOOQ/src/main/java/org/jooq/impl/StartTransaction.java b/jOOQ/src/main/java/org/jooq/impl/StartTransaction.java index 046b4b3e4f..4be2990c7b 100644 --- a/jOOQ/src/main/java/org/jooq/impl/StartTransaction.java +++ b/jOOQ/src/main/java/org/jooq/impl/StartTransaction.java @@ -108,7 +108,8 @@ implements - case H2: { + case H2: + case SQLITE: { ctx.visit(K_BEGIN).sql(' ').visit(K_TRANSACTION); break; }