From a6a9dd271a6a3b40132ef3748bd162b8d361eeb5 Mon Sep 17 00:00:00 2001 From: lukaseder Date: Thu, 5 Jul 2018 17:38:46 +0200 Subject: [PATCH] [#7628] Add support for PostgreSQL 11 - Added SQLDialect --- jOOQ-meta/src/main/java/org/jooq/meta/Databases.java | 1 + jOOQ/src/main/java/org/jooq/SQLDialect.java | 9 +++++++++ jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java | 1 + jOOQ/src/main/java/org/jooq/impl/Limit.java | 1 + jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java | 3 ++- jOOQ/src/main/java/org/jooq/tools/jdbc/JDBCUtils.java | 4 ++++ 6 files changed, 18 insertions(+), 1 deletion(-) diff --git a/jOOQ-meta/src/main/java/org/jooq/meta/Databases.java b/jOOQ-meta/src/main/java/org/jooq/meta/Databases.java index 899b97250c..71609ef65b 100644 --- a/jOOQ-meta/src/main/java/org/jooq/meta/Databases.java +++ b/jOOQ-meta/src/main/java/org/jooq/meta/Databases.java @@ -122,6 +122,7 @@ public class Databases { case POSTGRES_9_4: case POSTGRES_9_5: case POSTGRES_10: + case POSTGRES_11: case POSTGRES: result = PostgresDatabase.class; break; case SQLITE: result = SQLiteDatabase.class; break; diff --git a/jOOQ/src/main/java/org/jooq/SQLDialect.java b/jOOQ/src/main/java/org/jooq/SQLDialect.java index 02e13e4baf..243f61527d 100644 --- a/jOOQ/src/main/java/org/jooq/SQLDialect.java +++ b/jOOQ/src/main/java/org/jooq/SQLDialect.java @@ -178,6 +178,15 @@ public enum SQLDialect { */ POSTGRES_10("Postgres", false, POSTGRES, POSTGRES_9_5), + /** + * The PostgreSQL 11 dialect. + *

+ * While this family (and its dialects) have been observed to work to some + * extent on Amazon RedShift as well, we strongly suggest you use the + * official {@link #REDSHIFT} support, instead. + */ + POSTGRES_11("Postgres", false, POSTGRES, POSTGRES_10), + /** * The SQLite 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 e726f5dbda..17f8766394 100644 --- a/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java @@ -418,6 +418,7 @@ final class InsertQueryImpl extends AbstractStoreQuery impl case POSTGRES_9_5: case POSTGRES_10: + case POSTGRES_11: case POSTGRES: { toSQLInsert(ctx); ctx.formatSeparator() diff --git a/jOOQ/src/main/java/org/jooq/impl/Limit.java b/jOOQ/src/main/java/org/jooq/impl/Limit.java index 179eaeb816..dc23f43b52 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Limit.java +++ b/jOOQ/src/main/java/org/jooq/impl/Limit.java @@ -321,6 +321,7 @@ final class Limit extends AbstractQueryPart { case POSTGRES_9_4: case POSTGRES_9_5: case POSTGRES_10: + case POSTGRES_11: // No break // A default implementation is necessary for hashCode() and toString() diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java index f423de8f7e..0887f8f0d1 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java @@ -633,7 +633,8 @@ final class SelectQueryImpl extends AbstractResultQuery imp case POSTGRES_9_3: case POSTGRES_9_4: case POSTGRES_9_5: - case POSTGRES_10: { + case POSTGRES_10: + case POSTGRES_11: { if (getLimit().isApplicable() && getLimit().withTies()) toSQLReferenceLimitWithWindowFunctions(context); else 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 813516b0d6..cf8134c33c 100644 --- a/jOOQ/src/main/java/org/jooq/tools/jdbc/JDBCUtils.java +++ b/jOOQ/src/main/java/org/jooq/tools/jdbc/JDBCUtils.java @@ -63,6 +63,7 @@ import static org.jooq.SQLDialect.MYSQL_8_0; // ... import static org.jooq.SQLDialect.POSTGRES; import static org.jooq.SQLDialect.POSTGRES_10; +import static org.jooq.SQLDialect.POSTGRES_11; import static org.jooq.SQLDialect.POSTGRES_9_3; import static org.jooq.SQLDialect.POSTGRES_9_4; import static org.jooq.SQLDialect.POSTGRES_9_5; @@ -238,6 +239,9 @@ public class JDBCUtils { if (majorVersion >= 10) return POSTGRES_10; + if (majorVersion >= 11) + return POSTGRES_11; + return POSTGRES; }