[jOOQ/jOOQ#10089] Fix native PG JSON_OBJECT_AGG window function support

This commit is contained in:
Lukas Eder 2020-04-21 09:49:44 +02:00
parent c0e63ae2f7
commit a444521fba

View File

@ -92,6 +92,10 @@ implements JSONObjectAggNullStep<J> {
case POSTGRES:
acceptPostgres(ctx);
break;
// [#10089] These dialects support non-standard JSON_OBJECTAGG without ABSENT ON NULL support
case MARIADB:
case MYSQL:
@ -102,23 +106,24 @@ implements JSONObjectAggNullStep<J> {
break;
case POSTGRES:
ctx.visit(getDataType() == JSON ? N_JSON_OBJECT_AGG : N_JSONB_OBJECT_AGG).sql('(');
ctx.visit(entry);
ctx.sql(')');
// TODO: What about a user-defined filter clause?
if (nullClause == ABSENT_ON_NULL)
acceptFilterClause(ctx, entry.value().isNotNull());
break;
default:
acceptStandard(ctx);
break;
}
}
private final void acceptPostgres(Context<?> ctx) {
ctx.visit(getDataType() == JSON ? N_JSON_OBJECT_AGG : N_JSONB_OBJECT_AGG).sql('(');
ctx.visit(entry);
ctx.sql(')');
// TODO: What about a user-defined filter clause?
if (nullClause == ABSENT_ON_NULL)
acceptFilterClause(ctx, entry.value().isNotNull());
acceptOverClause(ctx);
}
@SuppressWarnings({ "unchecked", "rawtypes", "serial" })
private final void acceptGroupConcat(Context<?> ctx) {
Field<?> value;