diff --git a/jOOQ/src/main/java/org/jooq/impl/JSONObject.java b/jOOQ/src/main/java/org/jooq/impl/JSONObject.java index a01bdc4884..e0a1c63540 100644 --- a/jOOQ/src/main/java/org/jooq/impl/JSONObject.java +++ b/jOOQ/src/main/java/org/jooq/impl/JSONObject.java @@ -40,6 +40,7 @@ package org.jooq.impl; import static org.jooq.SQLDialect.H2; import static org.jooq.SQLDialect.MARIADB; import static org.jooq.SQLDialect.MYSQL; +// ... import static org.jooq.impl.DSL.asterisk; import static org.jooq.impl.DSL.inline; import static org.jooq.impl.DSL.row; @@ -180,15 +181,21 @@ final class JSONObject extends AbstractField implements JSONObjectNullStep ctx.visit(K_JSON_OBJECT).sql('(').visit(args); if (!NO_SUPPORT_ABSENT_ON_NULL.contains(ctx.dialect())) - if (nullClause == NULL_ON_NULL) + + // Workaround for https://github.com/h2database/h2database/issues/2496 + if (args.isEmpty() && ctx.family() == H2) + ctx.visit(K_NULL).sql(' ').visit(K_ON).sql(' ').visit(K_NULL); + + + + + + + else if (nullClause == NULL_ON_NULL) ctx.sql(' ').visit(K_NULL).sql(' ').visit(K_ON).sql(' ').visit(K_NULL); else if (nullClause == ABSENT_ON_NULL) ctx.sql(' ').visit(K_ABSENT).sql(' ').visit(K_ON).sql(' ').visit(K_NULL); - // Workaround for https://github.com/h2database/h2database/issues/2496 - else if (ctx.family() == H2 && args.isEmpty()) - ctx.visit(K_NULL).sql(' ').visit(K_ON).sql(' ').visit(K_NULL); - ctx.sql(')'); break; }