From 5bf67a30c8c8c67afa568ae3ed05412e45145ca5 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Thu, 16 Jul 2020 12:20:59 +0200 Subject: [PATCH] [jOOQ/jOOQ#10404] Add SQLDialect.ASE_12_5, ASE_15_5, ASE_15_7, ASE_16_0 dialects --- jOOQ/src/main/java/org/jooq/SQLDialect.java | 32 +++++++++++ .../DefaultInterpreterConnectionProvider.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Limit.java | 4 ++ .../java/org/jooq/impl/SelectQueryImpl.java | 4 ++ .../org/jooq/impl/SourceMetaProvider.java | 2 +- jOOQ/src/main/java/org/jooq/impl/Trim.java | 55 +++++++------------ .../java/org/jooq/tools/jdbc/JDBCUtils.java | 2 +- 7 files changed, 66 insertions(+), 39 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/SQLDialect.java b/jOOQ/src/main/java/org/jooq/SQLDialect.java index b1a5d061fd..419d215dce 100644 --- a/jOOQ/src/main/java/org/jooq/SQLDialect.java +++ b/jOOQ/src/main/java/org/jooq/SQLDialect.java @@ -610,6 +610,38 @@ public enum SQLDialect { + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultInterpreterConnectionProvider.java b/jOOQ/src/main/java/org/jooq/impl/DefaultInterpreterConnectionProvider.java index ce459da25e..81c462e8a5 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultInterpreterConnectionProvider.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultInterpreterConnectionProvider.java @@ -67,10 +67,10 @@ final class DefaultInterpreterConnectionProvider implements ConnectionProvider { @NotNull @Override public Connection acquire() throws DataAccessException { - SQLDialect dialect = defaultIfNull(configuration.settings().getInterpreterDialect(), DEFAULT); + SQLDialect family = defaultIfNull(configuration.settings().getInterpreterDialect(), DEFAULT).family(); try { - switch (dialect) { + switch (family) { case DERBY: return DriverManager.getConnection("jdbc:derby:memory:db;create=true"); @@ -86,7 +86,7 @@ final class DefaultInterpreterConnectionProvider implements ConnectionProvider { return DriverManager.getConnection("jdbc:sqlite::memory:"); default: - throw new DataAccessException("Unsupported interpretation dialect: " + dialect); + throw new DataAccessException("Unsupported interpretation dialect family: " + family); } } catch (SQLException e) { diff --git a/jOOQ/src/main/java/org/jooq/impl/Limit.java b/jOOQ/src/main/java/org/jooq/impl/Limit.java index 50cef1a0fe..967668e052 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Limit.java +++ b/jOOQ/src/main/java/org/jooq/impl/Limit.java @@ -268,6 +268,10 @@ final class Limit extends AbstractQueryPart { + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java index eabe5ef8b8..1813f1e008 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java @@ -1100,6 +1100,10 @@ final class SelectQueryImpl extends AbstractResultQuery imp + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/SourceMetaProvider.java b/jOOQ/src/main/java/org/jooq/impl/SourceMetaProvider.java index 1a90bcf04e..061274ec79 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SourceMetaProvider.java +++ b/jOOQ/src/main/java/org/jooq/impl/SourceMetaProvider.java @@ -75,7 +75,7 @@ final class SourceMetaProvider implements MetaProvider { } SQLDialect dialect = configuration.settings().getInterpreterDialect(); - switch (defaultIfNull(dialect, DEFAULT)) { + switch (defaultIfNull(dialect, DEFAULT).family()) { case DEFAULT: return new InterpreterMetaProvider(configuration, sources).provide(); diff --git a/jOOQ/src/main/java/org/jooq/impl/Trim.java b/jOOQ/src/main/java/org/jooq/impl/Trim.java index 835b8f0011..e199467ee8 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Trim.java +++ b/jOOQ/src/main/java/org/jooq/impl/Trim.java @@ -37,13 +37,23 @@ */ package org.jooq.impl; +// ... +// ... +// ... +import static org.jooq.SQLDialect.SQLITE; +// ... +// ... import static org.jooq.impl.Keywords.K_BOTH; import static org.jooq.impl.Keywords.K_FROM; import static org.jooq.impl.Names.N_TRIM; import static org.jooq.impl.SQLDataType.VARCHAR; +import java.util.Set; + import org.jooq.Context; import org.jooq.Field; +// ... +import org.jooq.SQLDialect; /** * @author Lukas Eder @@ -53,7 +63,12 @@ final class Trim extends AbstractField { /** * Generated UID */ - private static final long serialVersionUID = -7273879239726265322L; + private static final long serialVersionUID = -7273879239726265322L; + + + + + private final Field argument; private final Field characters; @@ -72,48 +87,20 @@ final class Trim extends AbstractField { @Override public final void accept(Context ctx) { if (characters == null) { - switch (ctx.dialect()) { - - - - - - - - - - - default: - ctx.visit(N_TRIM).sql('(').visit(argument).sql(')'); - break; - } + ctx.visit(N_TRIM).sql('(').visit(argument).sql(')'); } - else { - switch (ctx.dialect()) { + else if (ctx.family() == SQLITE) + ctx.visit(N_TRIM).sql('(').visit(argument).sql(", ").visit(characters).sql(')'); - - case SQLITE: - ctx.visit(N_TRIM).sql('(').visit(argument).sql(", ").visit(characters).sql(')'); - break; - - - - - - - - default: - ctx.visit(N_TRIM).sql('(').visit(K_BOTH).sql(' ').visit(characters).sql(' ').visit(K_FROM).sql(' ').visit(argument).sql(')'); - break; - } - } + else + ctx.visit(N_TRIM).sql('(').visit(K_BOTH).sql(' ').visit(characters).sql(' ').visit(K_FROM).sql(' ').visit(argument).sql(')'); } } diff --git a/jOOQ/src/main/java/org/jooq/tools/jdbc/JDBCUtils.java b/jOOQ/src/main/java/org/jooq/tools/jdbc/JDBCUtils.java index 61466a31d4..78b3350eaf 100644 --- a/jOOQ/src/main/java/org/jooq/tools/jdbc/JDBCUtils.java +++ b/jOOQ/src/main/java/org/jooq/tools/jdbc/JDBCUtils.java @@ -175,7 +175,7 @@ public class JDBCUtils { if (majorVersion == 0) return dialect; - switch (dialect) { + switch (dialect.family()) {