diff --git a/jOOQ-meta/src/main/java/org/jooq/meta/postgres/PostgresDatabase.java b/jOOQ-meta/src/main/java/org/jooq/meta/postgres/PostgresDatabase.java index 61ad546d56..f3f16a0ac4 100644 --- a/jOOQ-meta/src/main/java/org/jooq/meta/postgres/PostgresDatabase.java +++ b/jOOQ-meta/src/main/java/org/jooq/meta/postgres/PostgresDatabase.java @@ -923,7 +923,9 @@ public class PostgresDatabase extends AbstractDatabase implements ResultQueryDat d.OID, d.TYPBASETYPE, c.CONNAME, - when(c.OID.isNotNull(), array(constraintDef)) + + // [#17489] PG 17 added NOT NULL constraints for domains to this table + when(c.OID.isNotNull().and(c.CONTYPE.ne(inline("n"))), array(constraintDef)) ) .from(d) .leftJoin(c) @@ -936,9 +938,10 @@ public class PostgresDatabase extends AbstractDatabase implements ResultQueryDat d.OID, d.TYPBASETYPE, c.CONNAME, - decode() - .when(c.CONBIN.isNull(), src) - .otherwise(arrayAppend(src, constraintDef)) + + // [#17489] PG 17 added NOT NULL constraints for domains to this table + when(c.CONBIN.isNull().and(c.CONTYPE.ne(inline("n"))), src) + .else_(arrayAppend(src, constraintDef)) ) .from(name("domains")) .join(d) diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractAggregateFunction.java b/jOOQ/src/main/java/org/jooq/impl/AbstractAggregateFunction.java index ca181cd67c..70a9f1ff7d 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractAggregateFunction.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractAggregateFunction.java @@ -278,7 +278,7 @@ implements // [#2883][#9109] PostgreSQL and H2 can use the DISTINCT keyword with formal row value expressions. // [#13415] ListAgg is a special case, where the second argument is the separator - if (parens |= (args.size() > 1 && REQUIRE_DISTINCT_RVE.contains(ctx.dialect()) && !(this instanceof ListAgg))) + if (parens |= (args.size() > 1 && REQUIRE_DISTINCT_RVE.contains(ctx.dialect()) && !(this instanceof ListAgg) && !(this instanceof BinaryListAgg))) ctx.sql('('); }