diff --git a/jOOQ/src/main/java/org/jooq/JSONArrayAggNullStep.java b/jOOQ/src/main/java/org/jooq/JSONArrayAggNullStep.java index 7b5518d478..15fa6944cc 100644 --- a/jOOQ/src/main/java/org/jooq/JSONArrayAggNullStep.java +++ b/jOOQ/src/main/java/org/jooq/JSONArrayAggNullStep.java @@ -40,8 +40,6 @@ package org.jooq; // ... // ... import static org.jooq.SQLDialect.H2; -import static org.jooq.SQLDialect.MARIADB; -import static org.jooq.SQLDialect.MYSQL; // ... import static org.jooq.SQLDialect.POSTGRES; @@ -59,12 +57,12 @@ public interface JSONArrayAggNullStep extends AggregateFilterStep { /** * Include NULL values in output JSON. */ - @Support({ H2, MARIADB, MYSQL, POSTGRES }) + @Support({ H2, POSTGRES }) AggregateFilterStep nullOnNull(); /** * Exclude NULL values in output JSON. */ - @Support({ H2, MARIADB, MYSQL, POSTGRES }) + @Support({ H2, POSTGRES }) AggregateFilterStep absentOnNull(); } diff --git a/jOOQ/src/main/java/org/jooq/JSONArrayAggOrderByStep.java b/jOOQ/src/main/java/org/jooq/JSONArrayAggOrderByStep.java index 3c27ec2265..05c1dd2320 100644 --- a/jOOQ/src/main/java/org/jooq/JSONArrayAggOrderByStep.java +++ b/jOOQ/src/main/java/org/jooq/JSONArrayAggOrderByStep.java @@ -40,8 +40,6 @@ package org.jooq; // ... // ... import static org.jooq.SQLDialect.H2; -import static org.jooq.SQLDialect.MARIADB; -import static org.jooq.SQLDialect.MYSQL; // ... import static org.jooq.SQLDialect.POSTGRES; @@ -60,12 +58,12 @@ public interface JSONArrayAggOrderByStep extends JSONArrayAggNullStep { /** * Add an ORDER BY clause to the function. */ - @Support({ H2, MARIADB, MYSQL, POSTGRES }) + @Support({ H2, POSTGRES }) JSONArrayAggNullStep orderBy(OrderField... fields); /** * Add an ORDER BY clause to the function. */ - @Support({ H2, MARIADB, MYSQL, POSTGRES }) + @Support({ H2, POSTGRES }) JSONArrayAggNullStep orderBy(Collection> fields); } diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractAggregateFunction.java b/jOOQ/src/main/java/org/jooq/impl/AbstractAggregateFunction.java index 5718ff6c65..44a32e1d26 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractAggregateFunction.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractAggregateFunction.java @@ -151,6 +151,10 @@ implements } final void acceptFilterClause(Context ctx) { + acceptFilterClause(ctx, filter); + } + + static final void acceptFilterClause(Context ctx, Condition filter) { if (filter != null && SUPPORT_FILTER.contains(ctx.dialect())) ctx.sql(' ') .visit(K_FILTER) diff --git a/jOOQ/src/main/java/org/jooq/impl/JSONArrayAgg.java b/jOOQ/src/main/java/org/jooq/impl/JSONArrayAgg.java index be6aad838b..5dd57a2fdf 100644 --- a/jOOQ/src/main/java/org/jooq/impl/JSONArrayAgg.java +++ b/jOOQ/src/main/java/org/jooq/impl/JSONArrayAgg.java @@ -37,7 +37,6 @@ */ package org.jooq.impl; -import static org.jooq.impl.DSL.unquotedName; import static org.jooq.impl.JSONNullClause.ABSENT_ON_NULL; import static org.jooq.impl.JSONNullClause.NULL_ON_NULL; import static org.jooq.impl.JSONObject.acceptJSONNullClause; @@ -84,16 +83,14 @@ implements JSONArrayAggOrderByStep { case POSTGRES: - if (nullClause == ABSENT_ON_NULL) - ctx.visit(unquotedName("json_strip_nulls")).sql('('); - ctx.visit(getDataType() == JSON ? N_JSON_AGG : N_JSONB_AGG).sql('('); ctx.visit(arguments.get(0)); acceptOrderBy(ctx); ctx.sql(')'); + // TODO: What about a user-defined filter clause? if (nullClause == ABSENT_ON_NULL) - ctx.sql(')'); + acceptFilterClause(ctx, arguments.get(0).isNotNull()); break;