[jOOQ/jOOQ#11465] Add JSON support for SQLite via the JSON1 extension

This commit is contained in:
Lukas Eder 2021-07-09 11:58:51 +02:00
parent 53e49ff76f
commit 14ff6ce4a2
17 changed files with 130 additions and 73 deletions

View File

@ -45,6 +45,7 @@ import org.jetbrains.annotations.*;
import static org.jooq.SQLDialect.H2;
// ...
import static org.jooq.SQLDialect.POSTGRES;
import static org.jooq.SQLDialect.SQLITE;
import org.jooq.impl.DSL;
@ -61,13 +62,13 @@ public interface JSONArrayAggNullStep<T> extends JSONArrayAggReturningStep<T> {
* Include <code>NULL</code> values in output JSON.
*/
@NotNull
@Support({ H2, POSTGRES })
@Support({ H2, POSTGRES, SQLITE })
JSONArrayAggReturningStep<T> nullOnNull();
/**
* Exclude <code>NULL</code> values in output JSON.
*/
@NotNull
@Support({ H2, POSTGRES })
@Support({ H2, POSTGRES, SQLITE })
JSONArrayAggReturningStep<T> absentOnNull();
}

View File

@ -45,6 +45,7 @@ import org.jetbrains.annotations.*;
import static org.jooq.SQLDialect.H2;
// ...
import static org.jooq.SQLDialect.POSTGRES;
import static org.jooq.SQLDialect.SQLITE;
import org.jooq.impl.DSL;
@ -62,6 +63,6 @@ public interface JSONArrayAggReturningStep<T> extends AggregateFilterStep<T> {
* function.
*/
@NotNull
@Support({ H2, POSTGRES })
@Support({ H2, POSTGRES, SQLITE })
AggregateFilterStep<T> returning(DataType<?> returning);
}

View File

@ -72,7 +72,7 @@ public interface JSONArrayNullStep<T> extends JSONArrayReturningStep<T> {
* <p>
* Include <code>NULL</code> values in output JSON.
*/
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
@NotNull @CheckReturnValue
JSONArrayReturningStep<T> nullOnNull();

View File

@ -70,7 +70,7 @@ public interface JSONArrayReturningStep<T> extends Field<T> {
/**
* Add the <code>RETURNING</code> clause to the <code>JSON ARRAY</code> function.
*/
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
@NotNull @CheckReturnValue
Field<T> returning(DataType<?> returning);
}

View File

@ -48,6 +48,7 @@ import static org.jooq.SQLDialect.MARIADB;
import static org.jooq.SQLDialect.MYSQL;
// ...
import static org.jooq.SQLDialect.POSTGRES;
import static org.jooq.SQLDialect.SQLITE;
import org.jooq.impl.DSL;
@ -64,13 +65,13 @@ public interface JSONObjectAggNullStep<T> extends JSONObjectAggReturningStep<T>
* Include <code>NULL</code> values in output JSON.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
JSONObjectAggReturningStep<T> nullOnNull();
/**
* Exclude <code>NULL</code> values in output JSON.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
JSONObjectAggReturningStep<T> absentOnNull();
}

View File

@ -48,6 +48,7 @@ import static org.jooq.SQLDialect.MARIADB;
import static org.jooq.SQLDialect.MYSQL;
// ...
import static org.jooq.SQLDialect.POSTGRES;
import static org.jooq.SQLDialect.SQLITE;
import org.jooq.impl.DSL;
@ -65,6 +66,6 @@ public interface JSONObjectAggReturningStep<T> extends AggregateFilterStep<T> {
* function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
AggregateFilterStep<T> returning(DataType<?> returning);
}

View File

@ -72,7 +72,7 @@ public interface JSONObjectNullStep<T> extends JSONObjectReturningStep<T> {
* <p>
* Include <code>NULL</code> values in output JSON.
*/
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
@NotNull @CheckReturnValue
JSONObjectReturningStep<T> nullOnNull();

View File

@ -70,7 +70,7 @@ public interface JSONObjectReturningStep<T> extends Field<T> {
/**
* Add the <code>RETURNING</code> clause to the <code>JSON OBJECT</code> function.
*/
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
@NotNull @CheckReturnValue
Field<T> returning(DataType<?> returning);
}

View File

@ -19057,7 +19057,7 @@ public class DSL {
* The <code>JSON_ARRAY</code> function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static JSONArrayNullStep<JSON> jsonArray(Field<?>... fields) {
return new JSONArray<>(SQLDataType.JSON, Arrays.asList(fields));
}
@ -19066,7 +19066,7 @@ public class DSL {
* The <code>JSON_ARRAY</code> function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static JSONArrayNullStep<JSON> jsonArray(Collection<? extends Field<?>> fields) {
return new JSONArray<>(SQLDataType.JSON, fields);
}
@ -19075,7 +19075,7 @@ public class DSL {
* The <code>JSONB_ARRAY</code> function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static JSONArrayNullStep<JSONB> jsonbArray(Field<?>... fields) {
return new JSONArray<>(SQLDataType.JSONB, Arrays.asList(fields));
}
@ -19084,7 +19084,7 @@ public class DSL {
* The <code>JSONB_ARRAY</code> function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static JSONArrayNullStep<JSONB> jsonbArray(Collection<? extends Field<?>> fields) {
return new JSONArray<>(SQLDataType.JSONB, fields);
}
@ -19093,7 +19093,7 @@ public class DSL {
* The <code>JSON_OBJECT</code> function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static JSONObjectNullStep<JSON> jsonObject(Field<?>... entries) {
return new JSONObject<>(SQLDataType.JSON, Tools.jsonEntries(entries));
}
@ -19102,7 +19102,7 @@ public class DSL {
* The <code>JSON_OBJECT</code> function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static JSONObjectNullStep<JSON> jsonObject(JSONEntry<?>... entries) {
return new JSONObject<>(SQLDataType.JSON, Arrays.asList(entries));
}
@ -19111,7 +19111,7 @@ public class DSL {
* The <code>JSON_OBJECT</code> function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static JSONObjectNullStep<JSON> jsonObject(Collection<? extends JSONEntry<?>> entries) {
return new JSONObject<>(SQLDataType.JSON, entries);
}
@ -19120,7 +19120,7 @@ public class DSL {
* The <code>JSONB_OBJECT</code> function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static JSONObjectNullStep<JSONB> jsonbObject(Field<?>... entries) {
return new JSONObject<>(SQLDataType.JSONB, Tools.jsonEntries(entries));
}
@ -19129,7 +19129,7 @@ public class DSL {
* The <code>JSONB_OBJECT</code> function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static JSONObjectNullStep<JSONB> jsonbObject(JSONEntry<?>... entries) {
return new JSONObject<>(SQLDataType.JSONB, Arrays.asList(entries));
}
@ -19138,7 +19138,7 @@ public class DSL {
* The <code>JSONB_OBJECT</code> function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static JSONObjectNullStep<JSONB> jsonbObject(Collection<? extends JSONEntry<?>> entries) {
return new JSONObject<>(SQLDataType.JSONB, entries);
}
@ -22948,7 +22948,7 @@ public class DSL {
* This is the same as calling {@link #jsonEntry(String, Field)}.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static JSONEntryValueStep key(String key) {
return key(Tools.field(key));
}
@ -22960,7 +22960,7 @@ public class DSL {
* This is the same as calling {@link #jsonEntry(Field, Field)}.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static JSONEntryValueStep key(Field<String> key) {
return new JSONEntryImpl<>(key);
}
@ -22973,7 +22973,7 @@ public class DSL {
* {@link Field#getName()} as a key.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static <T> JSONEntry<T> jsonEntry(Field<T> value) {
return jsonEntry(value.getName(), value);
}
@ -22983,7 +22983,7 @@ public class DSL {
* {@link #jsonObject(JSONEntry...)}.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static <T> JSONEntry<T> jsonEntry(String key, T value) {
return jsonEntry(Tools.field(key), Tools.field(value));
}
@ -22993,7 +22993,7 @@ public class DSL {
* {@link #jsonObject(JSONEntry...)}.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static <T> JSONEntry<T> jsonEntry(String key, Field<T> value) {
return jsonEntry(Tools.field(key), value);
}
@ -23003,7 +23003,7 @@ public class DSL {
* {@link #jsonObject(JSONEntry...)}.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static <T> JSONEntry<T> jsonEntry(String key, Select<? extends Record1<T>> value) {
return jsonEntry(Tools.field(key), field(value));
}
@ -23013,7 +23013,7 @@ public class DSL {
* {@link #jsonObject(JSONEntry...)}.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static <T> JSONEntry<T> jsonEntry(Field<String> key, T value) {
return jsonEntry(key, Tools.field(value));
}
@ -23023,7 +23023,7 @@ public class DSL {
* {@link #jsonObject(JSONEntry...)}.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static <T> JSONEntry<T> jsonEntry(Field<String> key, Field<T> value) {
return new JSONEntryImpl<>(key, value);
}
@ -23033,7 +23033,7 @@ public class DSL {
* {@link #jsonObject(JSONEntry...)}.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static <T> JSONEntry<T> jsonEntry(Field<String> key, Select<? extends Record1<T>> value) {
return jsonEntry(key, field(value));
}
@ -23042,7 +23042,7 @@ public class DSL {
* The JSON object constructor.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static JSONObjectNullStep<JSON> jsonObject(String key, Field<?> value) {
return jsonObject(jsonEntry(key, value));
}
@ -23051,7 +23051,7 @@ public class DSL {
* The JSON object constructor.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static JSONObjectNullStep<JSON> jsonObject(Field<String> key, Field<?> value) {
return jsonObject(jsonEntry(key, value));
}
@ -23060,7 +23060,7 @@ public class DSL {
* The JSON object constructor.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static JSONObjectNullStep<JSON> jsonObject(Field<String> key, Select<? extends Record1<?>> value) {
return jsonObject(jsonEntry(key, value));
}
@ -23069,7 +23069,7 @@ public class DSL {
* The JSON object constructor.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static JSONObjectNullStep<JSON> jsonObject() {
return jsonObject(Tools.EMPTY_JSONENTRY);
}
@ -23078,7 +23078,7 @@ public class DSL {
* The JSON object constructor.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static JSONObjectNullStep<JSONB> jsonbObject() {
return jsonbObject(Tools.EMPTY_JSONENTRY);
}
@ -23087,7 +23087,7 @@ public class DSL {
* The JSON array aggregate function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static JSONArrayAggOrderByStep<JSON> jsonArrayAgg(Field<?> value) {
return new JSONArrayAgg<>(JSON, value);
}
@ -23096,7 +23096,7 @@ public class DSL {
* The JSON array aggregate function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static JSONArrayAggOrderByStep<JSONB> jsonbArrayAgg(Field<?> value) {
return new JSONArrayAgg<>(JSONB, value);
}
@ -23108,7 +23108,7 @@ public class DSL {
* {@link Field#getName()} as a key.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static JSONObjectAggNullStep<JSON> jsonObjectAgg(Field<?> value) {
return jsonObjectAgg(jsonEntry(value));
}
@ -23117,7 +23117,7 @@ public class DSL {
* The JSON object aggregate function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static JSONObjectAggNullStep<JSON> jsonObjectAgg(String key, Field<?> value) {
return jsonObjectAgg(Tools.field(key), value);
}
@ -23126,7 +23126,7 @@ public class DSL {
* The JSON object aggregate function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static JSONObjectAggNullStep<JSON> jsonObjectAgg(Field<String> key, Field<?> value) {
return jsonObjectAgg(jsonEntry(key, value));
}
@ -23135,7 +23135,7 @@ public class DSL {
* The JSON object aggregate function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static JSONObjectAggNullStep<JSON> jsonObjectAgg(JSONEntry<?> entry) {
return new JSONObjectAgg<>(JSON, entry);
}
@ -23147,7 +23147,7 @@ public class DSL {
* {@link Field#getName()} as a key.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static JSONObjectAggNullStep<JSONB> jsonbObjectAgg(Field<?> field) {
return jsonbObjectAgg(jsonEntry(field));
}
@ -23156,7 +23156,7 @@ public class DSL {
* The JSONB object aggregate function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static JSONObjectAggNullStep<JSONB> jsonbObjectAgg(String key, Field<?> value) {
return jsonbObjectAgg(Tools.field(key), value);
}
@ -23165,7 +23165,7 @@ public class DSL {
* The JSONB object aggregate function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static JSONObjectAggNullStep<JSONB> jsonbObjectAgg(Field<String> key, Field<?> value) {
return jsonbObjectAgg(jsonEntry(key, value));
}
@ -23174,7 +23174,7 @@ public class DSL {
* The JSONB object aggregate function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static JSONObjectAggNullStep<JSONB> jsonbObjectAgg(JSONEntry<?> entry) {
return new JSONObjectAgg<>(JSONB, entry);
}
@ -23437,7 +23437,7 @@ public class DSL {
* new issue on github.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static <R extends Record> Field<Result<R>> multiset(Select<R> select) {
return new Multiset<>(select);
}
@ -23664,7 +23664,7 @@ public class DSL {
* new issue on github.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static ArrayAggOrderByStep<Result<Record>> multisetAgg(Collection<? extends Field<?>> fields) {
return new MultisetAgg<>(false, row(fields));
}
@ -23713,7 +23713,7 @@ public class DSL {
* new issue on github.
*/
@NotNull
@Support({ H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static ArrayAggOrderByStep<Result<Record>> multisetAgg(Field<?>... fields) {
return new MultisetAgg<>(false, row(fields));
}
@ -23764,7 +23764,7 @@ public class DSL {
* new issue on github.
*/
@NotNull
@Support({ H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static <T1> ArrayAggOrderByStep<Result<Record1<T1>>> multisetAgg(SelectField<T1> field1) {
return new MultisetAgg<>(false, row(field1));
}
@ -23813,7 +23813,7 @@ public class DSL {
* new issue on github.
*/
@NotNull
@Support({ H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static <T1, T2> ArrayAggOrderByStep<Result<Record2<T1, T2>>> multisetAgg(SelectField<T1> field1, SelectField<T2> field2) {
return new MultisetAgg<>(false, row(field1, field2));
}
@ -23862,7 +23862,7 @@ public class DSL {
* new issue on github.
*/
@NotNull
@Support({ H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static <T1, T2, T3> ArrayAggOrderByStep<Result<Record3<T1, T2, T3>>> multisetAgg(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3) {
return new MultisetAgg<>(false, row(field1, field2, field3));
}
@ -23911,7 +23911,7 @@ public class DSL {
* new issue on github.
*/
@NotNull
@Support({ H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static <T1, T2, T3, T4> ArrayAggOrderByStep<Result<Record4<T1, T2, T3, T4>>> multisetAgg(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4) {
return new MultisetAgg<>(false, row(field1, field2, field3, field4));
}
@ -23960,7 +23960,7 @@ public class DSL {
* new issue on github.
*/
@NotNull
@Support({ H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static <T1, T2, T3, T4, T5> ArrayAggOrderByStep<Result<Record5<T1, T2, T3, T4, T5>>> multisetAgg(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5) {
return new MultisetAgg<>(false, row(field1, field2, field3, field4, field5));
}
@ -24009,7 +24009,7 @@ public class DSL {
* new issue on github.
*/
@NotNull
@Support({ H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static <T1, T2, T3, T4, T5, T6> ArrayAggOrderByStep<Result<Record6<T1, T2, T3, T4, T5, T6>>> multisetAgg(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6) {
return new MultisetAgg<>(false, row(field1, field2, field3, field4, field5, field6));
}
@ -24058,7 +24058,7 @@ public class DSL {
* new issue on github.
*/
@NotNull
@Support({ H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static <T1, T2, T3, T4, T5, T6, T7> ArrayAggOrderByStep<Result<Record7<T1, T2, T3, T4, T5, T6, T7>>> multisetAgg(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7) {
return new MultisetAgg<>(false, row(field1, field2, field3, field4, field5, field6, field7));
}
@ -24107,7 +24107,7 @@ public class DSL {
* new issue on github.
*/
@NotNull
@Support({ H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static <T1, T2, T3, T4, T5, T6, T7, T8> ArrayAggOrderByStep<Result<Record8<T1, T2, T3, T4, T5, T6, T7, T8>>> multisetAgg(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8) {
return new MultisetAgg<>(false, row(field1, field2, field3, field4, field5, field6, field7, field8));
}
@ -24156,7 +24156,7 @@ public class DSL {
* new issue on github.
*/
@NotNull
@Support({ H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static <T1, T2, T3, T4, T5, T6, T7, T8, T9> ArrayAggOrderByStep<Result<Record9<T1, T2, T3, T4, T5, T6, T7, T8, T9>>> multisetAgg(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9) {
return new MultisetAgg<>(false, row(field1, field2, field3, field4, field5, field6, field7, field8, field9));
}
@ -24205,7 +24205,7 @@ public class DSL {
* new issue on github.
*/
@NotNull
@Support({ H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> ArrayAggOrderByStep<Result<Record10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>>> multisetAgg(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10) {
return new MultisetAgg<>(false, row(field1, field2, field3, field4, field5, field6, field7, field8, field9, field10));
}
@ -24254,7 +24254,7 @@ public class DSL {
* new issue on github.
*/
@NotNull
@Support({ H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> ArrayAggOrderByStep<Result<Record11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>>> multisetAgg(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11) {
return new MultisetAgg<>(false, row(field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11));
}
@ -24303,7 +24303,7 @@ public class DSL {
* new issue on github.
*/
@NotNull
@Support({ H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> ArrayAggOrderByStep<Result<Record12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>>> multisetAgg(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12) {
return new MultisetAgg<>(false, row(field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12));
}
@ -24352,7 +24352,7 @@ public class DSL {
* new issue on github.
*/
@NotNull
@Support({ H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> ArrayAggOrderByStep<Result<Record13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>>> multisetAgg(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12, SelectField<T13> field13) {
return new MultisetAgg<>(false, row(field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13));
}
@ -24401,7 +24401,7 @@ public class DSL {
* new issue on github.
*/
@NotNull
@Support({ H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> ArrayAggOrderByStep<Result<Record14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>>> multisetAgg(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12, SelectField<T13> field13, SelectField<T14> field14) {
return new MultisetAgg<>(false, row(field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14));
}
@ -24450,7 +24450,7 @@ public class DSL {
* new issue on github.
*/
@NotNull
@Support({ H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> ArrayAggOrderByStep<Result<Record15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>>> multisetAgg(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12, SelectField<T13> field13, SelectField<T14> field14, SelectField<T15> field15) {
return new MultisetAgg<>(false, row(field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15));
}
@ -24499,7 +24499,7 @@ public class DSL {
* new issue on github.
*/
@NotNull
@Support({ H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> ArrayAggOrderByStep<Result<Record16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>>> multisetAgg(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12, SelectField<T13> field13, SelectField<T14> field14, SelectField<T15> field15, SelectField<T16> field16) {
return new MultisetAgg<>(false, row(field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16));
}
@ -24548,7 +24548,7 @@ public class DSL {
* new issue on github.
*/
@NotNull
@Support({ H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17> ArrayAggOrderByStep<Result<Record17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17>>> multisetAgg(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12, SelectField<T13> field13, SelectField<T14> field14, SelectField<T15> field15, SelectField<T16> field16, SelectField<T17> field17) {
return new MultisetAgg<>(false, row(field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17));
}
@ -24597,7 +24597,7 @@ public class DSL {
* new issue on github.
*/
@NotNull
@Support({ H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18> ArrayAggOrderByStep<Result<Record18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18>>> multisetAgg(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12, SelectField<T13> field13, SelectField<T14> field14, SelectField<T15> field15, SelectField<T16> field16, SelectField<T17> field17, SelectField<T18> field18) {
return new MultisetAgg<>(false, row(field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18));
}
@ -24646,7 +24646,7 @@ public class DSL {
* new issue on github.
*/
@NotNull
@Support({ H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> ArrayAggOrderByStep<Result<Record19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19>>> multisetAgg(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12, SelectField<T13> field13, SelectField<T14> field14, SelectField<T15> field15, SelectField<T16> field16, SelectField<T17> field17, SelectField<T18> field18, SelectField<T19> field19) {
return new MultisetAgg<>(false, row(field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19));
}
@ -24695,7 +24695,7 @@ public class DSL {
* new issue on github.
*/
@NotNull
@Support({ H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20> ArrayAggOrderByStep<Result<Record20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20>>> multisetAgg(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12, SelectField<T13> field13, SelectField<T14> field14, SelectField<T15> field15, SelectField<T16> field16, SelectField<T17> field17, SelectField<T18> field18, SelectField<T19> field19, SelectField<T20> field20) {
return new MultisetAgg<>(false, row(field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19, field20));
}
@ -24744,7 +24744,7 @@ public class DSL {
* new issue on github.
*/
@NotNull
@Support({ H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21> ArrayAggOrderByStep<Result<Record21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21>>> multisetAgg(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12, SelectField<T13> field13, SelectField<T14> field14, SelectField<T15> field15, SelectField<T16> field16, SelectField<T17> field17, SelectField<T18> field18, SelectField<T19> field19, SelectField<T20> field20, SelectField<T21> field21) {
return new MultisetAgg<>(false, row(field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19, field20, field21));
}
@ -24793,7 +24793,7 @@ public class DSL {
* new issue on github.
*/
@NotNull
@Support({ H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE })
public static <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> ArrayAggOrderByStep<Result<Record22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22>>> multisetAgg(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12, SelectField<T13> field13, SelectField<T14> field14, SelectField<T15> field15, SelectField<T16> field16, SelectField<T17> field17, SelectField<T18> field18, SelectField<T19> field19, SelectField<T20> field20, SelectField<T21> field21, SelectField<T22> field22) {
return new MultisetAgg<>(false, row(field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19, field20, field21, field22));
}

View File

@ -54,6 +54,7 @@ import static org.jooq.impl.Names.N_GROUP_CONCAT;
import static org.jooq.impl.Names.N_JSONB_AGG;
import static org.jooq.impl.Names.N_JSON_AGG;
import static org.jooq.impl.Names.N_JSON_ARRAYAGG;
import static org.jooq.impl.Names.N_JSON_GROUP_ARRAY;
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_QUOTE;
@ -140,6 +141,20 @@ implements JSONArrayAggOrderByStep<J> {
acceptOverClause(ctx);
break;
case SQLITE:
ctx.visit(N_JSON_GROUP_ARRAY).sql('(');
ctx.visit(arguments.get(0));
acceptOrderBy(ctx);
ctx.sql(')');
if (onNull == ABSENT_ON_NULL)
acceptFilterClause(ctx, (filter == null ? noCondition() : filter).and(arguments.get(0).isNotNull()));
else
acceptFilterClause(ctx);
acceptOverClause(ctx);
break;
default:
acceptStandard(ctx);
break;

View File

@ -40,12 +40,18 @@ package org.jooq.impl;
import static java.lang.Boolean.TRUE;
import static org.jooq.impl.DSL.NULL;
import static org.jooq.impl.DSL.coalesce;
import static org.jooq.impl.DSL.condition;
import static org.jooq.impl.DSL.field;
import static org.jooq.impl.DSL.function;
import static org.jooq.impl.DSL.iif;
import static org.jooq.impl.DSL.inline;
import static org.jooq.impl.DSL.inlined;
import static org.jooq.impl.DSL.when;
import static org.jooq.impl.Keywords.K_FORMAT;
import static org.jooq.impl.Keywords.K_JSON;
import static org.jooq.impl.Keywords.K_KEY;
import static org.jooq.impl.Keywords.K_VALUE;
import static org.jooq.impl.Names.N_JSON;
import static org.jooq.impl.Names.N_JSON_QUERY;
import static org.jooq.impl.SQLDataType.VARCHAR;
import static org.jooq.impl.Tools.emulateMultiset;
@ -135,6 +141,7 @@ final class JSONEntryImpl<T> extends AbstractQueryPart implements JSONEntry<T>,
case MARIADB:
case MYSQL:
case POSTGRES:
case SQLITE:
ctx.visit(key).sql(", ").visit(jsonCast(ctx, value));
break;
@ -148,6 +155,7 @@ final class JSONEntryImpl<T> extends AbstractQueryPart implements JSONEntry<T>,
return field -> jsonCast(ctx, field);
}
@SuppressWarnings("unchecked")
static final Field<?> jsonCast(Context<?> ctx, Field<?> field) {
DataType<?> type = field.getDataType();
@ -170,6 +178,12 @@ final class JSONEntryImpl<T> extends AbstractQueryPart implements JSONEntry<T>,
break;
case SQLITE:
if (type.getType() == Boolean.class)
return function(N_JSON, SQLDataType.JSON, iif(condition((Field<Boolean>) field), inline("true"), inline("false")));
break;

View File

@ -39,6 +39,7 @@ package org.jooq.impl;
import static org.jooq.SQLDialect.MARIADB;
import static org.jooq.SQLDialect.MYSQL;
import static org.jooq.SQLDialect.SQLITE;
import static org.jooq.impl.JSONOnNull.ABSENT_ON_NULL;
import static org.jooq.impl.JSONOnNull.NULL_ON_NULL;
import static org.jooq.impl.Keywords.K_ABSENT;
@ -54,7 +55,7 @@ import org.jooq.SQLDialect;
* @author Lukas Eder
*/
final class JSONNull extends AbstractQueryPart implements SimpleQueryPart {
static final Set<SQLDialect> NO_SUPPORT_ABSENT_ON_NULL = SQLDialect.supportedBy(MARIADB, MYSQL);
static final Set<SQLDialect> NO_SUPPORT_ABSENT_ON_NULL = SQLDialect.supportedBy(MARIADB, MYSQL, SQLITE);
final JSONOnNull type;

View File

@ -48,6 +48,7 @@ import static org.jooq.impl.JSONOnNull.ABSENT_ON_NULL;
import static org.jooq.impl.JSONOnNull.NULL_ON_NULL;
import static org.jooq.impl.Names.N_FIELD;
import static org.jooq.impl.Names.N_JSONB_OBJECT_AGG;
import static org.jooq.impl.Names.N_JSON_GROUP_OBJECT;
import static org.jooq.impl.Names.N_JSON_OBJECTAGG;
import static org.jooq.impl.Names.N_JSON_OBJECT_AGG;
import static org.jooq.impl.SQLDataType.JSON;
@ -119,6 +120,10 @@ implements JSONObjectAggNullStep<J> {
break;
case SQLITE:
acceptSQLite(ctx);
break;
default:
acceptStandard(ctx);
break;
@ -138,6 +143,19 @@ implements JSONObjectAggNullStep<J> {
acceptOverClause(ctx);
}
private final void acceptSQLite(Context<?> ctx) {
ctx.visit(N_JSON_GROUP_OBJECT).sql('(');
ctx.visit(entry);
ctx.sql(')');
if (onNull == ABSENT_ON_NULL)
acceptFilterClause(ctx, (filter == null ? noCondition() : filter).and(entry.value().isNotNull()));
else
acceptFilterClause(ctx);
acceptOverClause(ctx);
}
private final void acceptGroupConcat(Context<?> ctx) {
final Field<String> listagg = CustomField.of(Names.N_GROUP_CONCAT, VARCHAR, c1 -> {
Field<JSON> o1 = jsonObject(entry.key(), entry.value());

View File

@ -43,6 +43,7 @@ import static org.jooq.SQLDialect.H2;
import static org.jooq.SQLDialect.MARIADB;
import static org.jooq.SQLDialect.MYSQL;
import static org.jooq.SQLDialect.POSTGRES;
import static org.jooq.SQLDialect.SQLITE;
import static org.jooq.impl.Keywords.K_RETURNING;
import java.util.Set;
@ -55,7 +56,7 @@ import org.jooq.SQLDialect;
* @author Lukas Eder
*/
final class JSONReturning extends AbstractQueryPart implements SimpleQueryPart {
static final Set<SQLDialect> NO_SUPPORT_RETURNING = SQLDialect.supportedBy(H2, MARIADB, MYSQL, POSTGRES);
static final Set<SQLDialect> NO_SUPPORT_RETURNING = SQLDialect.supportedBy(H2, MARIADB, MYSQL, POSTGRES, SQLITE);
final DataType<?> type;
JSONReturning(DataType<?> type) {

View File

@ -200,12 +200,15 @@ final class Names {
static final Name N_JSONB_OBJECT_AGG = unquotedName("jsonb_object_agg");
static final Name N_JSONB_PATH_EXISTS = unquotedName("jsonb_path_exists");
static final Name N_JSONB_PATH_QUERY_FIRST = unquotedName("jsonb_path_query_first");
static final Name N_JSON = unquotedName("json");
static final Name N_JSON_AGG = unquotedName("json_agg");
static final Name N_JSON_ARRAY = unquotedName("json_array");
static final Name N_JSON_ARRAYAGG = unquotedName("json_arrayagg");
static final Name N_JSON_BUILD_ARRAY = unquotedName("json_build_array");
static final Name N_JSON_CONTAINS_PATH = unquotedName("json_contains_path");
static final Name N_JSON_EXTRACT = unquotedName("json_extract");
static final Name N_JSON_GROUP_ARRAY = unquotedName("json_group_array");
static final Name N_JSON_GROUP_OBJECT = unquotedName("json_group_object");
static final Name N_JSON_MERGE = unquotedName("json_merge");
static final Name N_JSON_MERGE_PRESERVE = unquotedName("json_merge_preserve");
static final Name N_JSON_OBJECT = unquotedName("json_object");

View File

@ -8581,7 +8581,7 @@ final class DefaultParseContext extends AbstractScope implements ParseContext {
private final AggregateFilterStep<?> parseJSONArrayAggFunctionIf() {
boolean jsonb = false;
if (parseFunctionNameIf("JSON_ARRAYAGG", "JSON_AGG") || (jsonb = parseFunctionNameIf("JSONB_AGG"))) {
if (parseFunctionNameIf("JSON_ARRAYAGG", "JSON_AGG", "JSON_GROUP_ARRAY") || (jsonb = parseFunctionNameIf("JSONB_AGG"))) {
AggregateFilterStep<?> result;
JSONArrayAggOrderByStep<?> s1;
JSONArrayAggNullStep<?> s2;
@ -8645,7 +8645,7 @@ final class DefaultParseContext extends AbstractScope implements ParseContext {
private final AggregateFilterStep<?> parseJSONObjectAggFunctionIf() {
boolean jsonb = false;
if (parseFunctionNameIf("JSON_OBJECTAGG", "JSON_OBJECT_AGG") || (jsonb = parseFunctionNameIf("JSONB_OBJECT_AGG"))) {
if (parseFunctionNameIf("JSON_OBJECTAGG", "JSON_OBJECT_AGG", "JSON_GROUP_OBJECT") || (jsonb = parseFunctionNameIf("JSONB_OBJECT_AGG"))) {
AggregateFilterStep<?> result;
JSONObjectAggNullStep<?> s1;
JSONObjectAggReturningStep<?> s2;

View File

@ -5883,6 +5883,7 @@ final class Tools {
case MARIADB:
case MYSQL:
case SQLITE:
return NestedCollectionEmulation.JSON;