[jOOQ/jOOQ#9928] Oracle doesn't support NULL clause on empty JSON_OBJECT
This commit is contained in:
parent
8085600a8c
commit
85d95c62df
@ -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<J> extends AbstractField<J> 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;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user