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;
}