From 30d4bc70da1f6d610139f63fb769b714a8c1077c Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Tue, 22 Jun 2021 17:14:25 +0200 Subject: [PATCH] [jOOQ/jOOQ#11737] Add dialect version support for H2 This includes: - [jOOQ/jOOQ#12007] Column "INFORMATION_SCHEMA.COLUMNS.DOMAIN_SCHEMA" and "INFORMATION_SCHEMA.COLUMNS.DOMAIN_NAME" not found in H2 1.4.1970 --- .../org/jooq/meta/h2/H2TableDefinition.java | 4 ++-- jOOQ/src/main/java/org/jooq/SQLDialect.java | 18 +++++++++++++++++ .../java/org/jooq/impl/InsertQueryImpl.java | 2 ++ jOOQ/src/main/java/org/jooq/impl/Limit.java | 2 ++ .../java/org/jooq/tools/jdbc/JDBCUtils.java | 20 +++++++++++++++++++ 5 files changed, 44 insertions(+), 2 deletions(-) diff --git a/jOOQ-meta/src/main/java/org/jooq/meta/h2/H2TableDefinition.java b/jOOQ-meta/src/main/java/org/jooq/meta/h2/H2TableDefinition.java index f742abd861..d8ca738d81 100644 --- a/jOOQ-meta/src/main/java/org/jooq/meta/h2/H2TableDefinition.java +++ b/jOOQ-meta/src/main/java/org/jooq/meta/h2/H2TableDefinition.java @@ -112,8 +112,8 @@ public class H2TableDefinition extends AbstractTableDefinition { COLUMNS.COLUMN_DEFAULT, COLUMNS.REMARKS, COLUMNS.SEQUENCE_NAME, - COLUMNS.DOMAIN_SCHEMA, - COLUMNS.DOMAIN_NAME + ((H2Database) getDatabase()).is1_4_198() ? COLUMNS.DOMAIN_SCHEMA : inline("").as(COLUMNS.DOMAIN_SCHEMA), + ((H2Database) getDatabase()).is1_4_198() ? COLUMNS.DOMAIN_NAME : inline("").as(COLUMNS.DOMAIN_NAME) ) .from(COLUMNS) .where(COLUMNS.TABLE_SCHEMA.equal(getSchema().getName())) diff --git a/jOOQ/src/main/java/org/jooq/SQLDialect.java b/jOOQ/src/main/java/org/jooq/SQLDialect.java index 5ad7c298c9..f5cdd1f840 100644 --- a/jOOQ/src/main/java/org/jooq/SQLDialect.java +++ b/jOOQ/src/main/java/org/jooq/SQLDialect.java @@ -144,6 +144,24 @@ public enum SQLDialect { */ H2("H2", false, true), + + + + + + + + + + + + + + + + + + /** * The Hypersonic dialect family. */ diff --git a/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java index 699b5d6c41..f2d7619b42 100644 --- a/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java @@ -552,6 +552,8 @@ final class InsertQueryImpl extends AbstractStoreQuery impl + + diff --git a/jOOQ/src/main/java/org/jooq/impl/Limit.java b/jOOQ/src/main/java/org/jooq/impl/Limit.java index 0c5f3328b9..d8c3f6b1da 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Limit.java +++ b/jOOQ/src/main/java/org/jooq/impl/Limit.java @@ -160,6 +160,8 @@ final class Limit extends AbstractQueryPart { + + 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 63ac9b41a5..d107295b73 100644 --- a/jOOQ/src/main/java/org/jooq/tools/jdbc/JDBCUtils.java +++ b/jOOQ/src/main/java/org/jooq/tools/jdbc/JDBCUtils.java @@ -286,6 +286,8 @@ public class JDBCUtils { case FIREBIRD: return firebirdDialect(majorVersion); + case H2: + return h2Dialect(majorVersion, minorVersion, productVersion); case MARIADB: return mariadbDialect(majorVersion, minorVersion); case MYSQL: @@ -427,6 +429,24 @@ public class JDBCUtils { return FIREBIRD; } + private static final SQLDialect h2Dialect(int majorVersion, int minorVersion, String productVersion) { + + + + + + + + + + + + + + + return H2; + } + /** * "Guess" the {@link SQLDialect} from a connection URL. *