[jOOQ/jOOQ#14653] Better handle the null/undefined difference in

JSON_ARRAY
This commit is contained in:
Lukas Eder 2023-02-20 20:00:47 +01:00
parent 694f566df9
commit cb7addce1d
3 changed files with 22 additions and 1 deletions

View File

@ -193,6 +193,10 @@ implements

View File

@ -62,7 +62,9 @@ import static org.jooq.impl.Names.N_JSON_EXTRACT;
import static org.jooq.impl.Names.N_JSON_MERGE;
import static org.jooq.impl.Names.N_JSON_MERGE_PRESERVE;
import static org.jooq.impl.Names.N_JSON_QUERY;
import static org.jooq.impl.Names.N_PARSE_JSON;
import static org.jooq.impl.Names.N_RAWTOHEX;
import static org.jooq.impl.Names.N_TO_VARIANT;
import static org.jooq.impl.SQLDataType.BIT;
import static org.jooq.impl.SQLDataType.BOOLEAN;
import static org.jooq.impl.SQLDataType.JSON;
@ -78,9 +80,11 @@ import java.util.function.Function;
import org.jooq.Context;
import org.jooq.DataType;
import org.jooq.Field;
import org.jooq.JSON;
import org.jooq.JSONEntry;
import org.jooq.JSONEntryValueStep;
import org.jooq.Param;
// ...
import org.jooq.QueryPart;
import org.jooq.Record1;
// ...
@ -292,6 +296,19 @@ final class JSONEntryImpl<T> extends AbstractQueryPart implements JSONEntry<T>,
return field;
}
@SuppressWarnings("unchecked")
private static Field<String> booleanCase(Field<?> field) {
return case_((Field<Boolean>) field).when(inline(true), inline("true")).when(inline(false), inline("false"));

View File

@ -131,7 +131,6 @@ final class Names {
static final Name N_GENERATOR = systemName("generator");
static final Name N_GEN_ID = systemName("gen_id");
static final Name N_GEN_UUID = systemName("gen_uuid");
static final Name N_GET = systemName("get");
static final Name N_GETDATE = systemName("getdate");
static final Name N_GREATEST = systemName("greatest");
static final Name N_GROUPING_SETS = systemName("grouping sets");
@ -276,6 +275,7 @@ final class Names {
static final Name N_TIMESTAMP_SUB = systemName("timestamp_sub");
static final Name N_TO_CLOB = systemName("to_clob");
static final Name N_TO_NUMBER = systemName("to_number");
static final Name N_TO_VARIANT = systemName("to_variant");
static final Name N_TRUNCATE = systemName("truncate");
static final Name N_TRUNCNUM = systemName("truncnum");
static final Name N_UNNEST = systemName("unnest");