diff --git a/jOOQ/src/main/java/org/jooq/JSONArrayAggNullStep.java b/jOOQ/src/main/java/org/jooq/JSONArrayAggNullStep.java index 2e7bd149b4..19449535a3 100644 --- a/jOOQ/src/main/java/org/jooq/JSONArrayAggNullStep.java +++ b/jOOQ/src/main/java/org/jooq/JSONArrayAggNullStep.java @@ -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 extends JSONArrayAggReturningStep { * Include NULL values in output JSON. */ @NotNull - @Support({ H2, POSTGRES }) + @Support({ H2, POSTGRES, SQLITE }) JSONArrayAggReturningStep nullOnNull(); /** * Exclude NULL values in output JSON. */ @NotNull - @Support({ H2, POSTGRES }) + @Support({ H2, POSTGRES, SQLITE }) JSONArrayAggReturningStep absentOnNull(); } diff --git a/jOOQ/src/main/java/org/jooq/JSONArrayAggReturningStep.java b/jOOQ/src/main/java/org/jooq/JSONArrayAggReturningStep.java index 886f40ae3f..61bc5d6f61 100644 --- a/jOOQ/src/main/java/org/jooq/JSONArrayAggReturningStep.java +++ b/jOOQ/src/main/java/org/jooq/JSONArrayAggReturningStep.java @@ -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 extends AggregateFilterStep { * function. */ @NotNull - @Support({ H2, POSTGRES }) + @Support({ H2, POSTGRES, SQLITE }) AggregateFilterStep returning(DataType returning); } diff --git a/jOOQ/src/main/java/org/jooq/JSONArrayNullStep.java b/jOOQ/src/main/java/org/jooq/JSONArrayNullStep.java index 0e3860931e..698a2183be 100644 --- a/jOOQ/src/main/java/org/jooq/JSONArrayNullStep.java +++ b/jOOQ/src/main/java/org/jooq/JSONArrayNullStep.java @@ -72,7 +72,7 @@ public interface JSONArrayNullStep extends JSONArrayReturningStep { *

* Include NULL values in output JSON. */ - @Support({ H2, MARIADB, MYSQL, POSTGRES }) + @Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE }) @NotNull @CheckReturnValue JSONArrayReturningStep nullOnNull(); diff --git a/jOOQ/src/main/java/org/jooq/JSONArrayReturningStep.java b/jOOQ/src/main/java/org/jooq/JSONArrayReturningStep.java index 584fc8e587..ba8231d945 100644 --- a/jOOQ/src/main/java/org/jooq/JSONArrayReturningStep.java +++ b/jOOQ/src/main/java/org/jooq/JSONArrayReturningStep.java @@ -70,7 +70,7 @@ public interface JSONArrayReturningStep extends Field { /** * Add the RETURNING clause to the JSON ARRAY function. */ - @Support({ H2, MARIADB, MYSQL, POSTGRES }) + @Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE }) @NotNull @CheckReturnValue Field returning(DataType returning); } diff --git a/jOOQ/src/main/java/org/jooq/JSONObjectAggNullStep.java b/jOOQ/src/main/java/org/jooq/JSONObjectAggNullStep.java index 5ed626d504..09dc100fbd 100644 --- a/jOOQ/src/main/java/org/jooq/JSONObjectAggNullStep.java +++ b/jOOQ/src/main/java/org/jooq/JSONObjectAggNullStep.java @@ -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 extends JSONObjectAggReturningStep * Include NULL values in output JSON. */ @NotNull - @Support({ H2, MARIADB, MYSQL, POSTGRES }) + @Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE }) JSONObjectAggReturningStep nullOnNull(); /** * Exclude NULL values in output JSON. */ @NotNull - @Support({ H2, MARIADB, MYSQL, POSTGRES }) + @Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE }) JSONObjectAggReturningStep absentOnNull(); } diff --git a/jOOQ/src/main/java/org/jooq/JSONObjectAggReturningStep.java b/jOOQ/src/main/java/org/jooq/JSONObjectAggReturningStep.java index 30d91ca46b..e8b3574b38 100644 --- a/jOOQ/src/main/java/org/jooq/JSONObjectAggReturningStep.java +++ b/jOOQ/src/main/java/org/jooq/JSONObjectAggReturningStep.java @@ -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 extends AggregateFilterStep { * function. */ @NotNull - @Support({ H2, MARIADB, MYSQL, POSTGRES }) + @Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE }) AggregateFilterStep returning(DataType returning); } diff --git a/jOOQ/src/main/java/org/jooq/JSONObjectNullStep.java b/jOOQ/src/main/java/org/jooq/JSONObjectNullStep.java index d8eef18292..fc7d7db3b5 100644 --- a/jOOQ/src/main/java/org/jooq/JSONObjectNullStep.java +++ b/jOOQ/src/main/java/org/jooq/JSONObjectNullStep.java @@ -72,7 +72,7 @@ public interface JSONObjectNullStep extends JSONObjectReturningStep { *

* Include NULL values in output JSON. */ - @Support({ H2, MARIADB, MYSQL, POSTGRES }) + @Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE }) @NotNull @CheckReturnValue JSONObjectReturningStep nullOnNull(); diff --git a/jOOQ/src/main/java/org/jooq/JSONObjectReturningStep.java b/jOOQ/src/main/java/org/jooq/JSONObjectReturningStep.java index 8c02637f8a..df855219dc 100644 --- a/jOOQ/src/main/java/org/jooq/JSONObjectReturningStep.java +++ b/jOOQ/src/main/java/org/jooq/JSONObjectReturningStep.java @@ -70,7 +70,7 @@ public interface JSONObjectReturningStep extends Field { /** * Add the RETURNING clause to the JSON OBJECT function. */ - @Support({ H2, MARIADB, MYSQL, POSTGRES }) + @Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE }) @NotNull @CheckReturnValue Field returning(DataType returning); } diff --git a/jOOQ/src/main/java/org/jooq/impl/DSL.java b/jOOQ/src/main/java/org/jooq/impl/DSL.java index 031d1a6005..3057291654 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DSL.java +++ b/jOOQ/src/main/java/org/jooq/impl/DSL.java @@ -19057,7 +19057,7 @@ public class DSL { * The JSON_ARRAY function. */ @NotNull - @Support({ H2, MARIADB, MYSQL, POSTGRES }) + @Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE }) public static JSONArrayNullStep jsonArray(Field... fields) { return new JSONArray<>(SQLDataType.JSON, Arrays.asList(fields)); } @@ -19066,7 +19066,7 @@ public class DSL { * The JSON_ARRAY function. */ @NotNull - @Support({ H2, MARIADB, MYSQL, POSTGRES }) + @Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE }) public static JSONArrayNullStep jsonArray(Collection> fields) { return new JSONArray<>(SQLDataType.JSON, fields); } @@ -19075,7 +19075,7 @@ public class DSL { * The JSONB_ARRAY function. */ @NotNull - @Support({ H2, MARIADB, MYSQL, POSTGRES }) + @Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE }) public static JSONArrayNullStep jsonbArray(Field... fields) { return new JSONArray<>(SQLDataType.JSONB, Arrays.asList(fields)); } @@ -19084,7 +19084,7 @@ public class DSL { * The JSONB_ARRAY function. */ @NotNull - @Support({ H2, MARIADB, MYSQL, POSTGRES }) + @Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE }) public static JSONArrayNullStep jsonbArray(Collection> fields) { return new JSONArray<>(SQLDataType.JSONB, fields); } @@ -19093,7 +19093,7 @@ public class DSL { * The JSON_OBJECT function. */ @NotNull - @Support({ H2, MARIADB, MYSQL, POSTGRES }) + @Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE }) public static JSONObjectNullStep jsonObject(Field... entries) { return new JSONObject<>(SQLDataType.JSON, Tools.jsonEntries(entries)); } @@ -19102,7 +19102,7 @@ public class DSL { * The JSON_OBJECT function. */ @NotNull - @Support({ H2, MARIADB, MYSQL, POSTGRES }) + @Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE }) public static JSONObjectNullStep jsonObject(JSONEntry... entries) { return new JSONObject<>(SQLDataType.JSON, Arrays.asList(entries)); } @@ -19111,7 +19111,7 @@ public class DSL { * The JSON_OBJECT function. */ @NotNull - @Support({ H2, MARIADB, MYSQL, POSTGRES }) + @Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE }) public static JSONObjectNullStep jsonObject(Collection> entries) { return new JSONObject<>(SQLDataType.JSON, entries); } @@ -19120,7 +19120,7 @@ public class DSL { * The JSONB_OBJECT function. */ @NotNull - @Support({ H2, MARIADB, MYSQL, POSTGRES }) + @Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE }) public static JSONObjectNullStep jsonbObject(Field... entries) { return new JSONObject<>(SQLDataType.JSONB, Tools.jsonEntries(entries)); } @@ -19129,7 +19129,7 @@ public class DSL { * The JSONB_OBJECT function. */ @NotNull - @Support({ H2, MARIADB, MYSQL, POSTGRES }) + @Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE }) public static JSONObjectNullStep jsonbObject(JSONEntry... entries) { return new JSONObject<>(SQLDataType.JSONB, Arrays.asList(entries)); } @@ -19138,7 +19138,7 @@ public class DSL { * The JSONB_OBJECT function. */ @NotNull - @Support({ H2, MARIADB, MYSQL, POSTGRES }) + @Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE }) public static JSONObjectNullStep jsonbObject(Collection> 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 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 JSONEntry jsonEntry(Field 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 JSONEntry 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 JSONEntry jsonEntry(String key, Field 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 JSONEntry jsonEntry(String key, Select> 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 JSONEntry jsonEntry(Field 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 JSONEntry jsonEntry(Field key, Field 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 JSONEntry jsonEntry(Field key, Select> 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 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 jsonObject(Field 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 jsonObject(Field key, Select> 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 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 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 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 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 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 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 jsonObjectAgg(Field 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 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 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 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 jsonbObjectAgg(Field 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 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 Field> multiset(Select 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> multisetAgg(Collection> 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> 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 ArrayAggOrderByStep>> multisetAgg(SelectField 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 ArrayAggOrderByStep>> multisetAgg(SelectField field1, SelectField 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 ArrayAggOrderByStep>> multisetAgg(SelectField field1, SelectField field2, SelectField 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 ArrayAggOrderByStep>> multisetAgg(SelectField field1, SelectField field2, SelectField field3, SelectField 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 ArrayAggOrderByStep>> multisetAgg(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField 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 ArrayAggOrderByStep>> multisetAgg(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField 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 ArrayAggOrderByStep>> multisetAgg(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField 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 ArrayAggOrderByStep>> multisetAgg(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField 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 ArrayAggOrderByStep>> multisetAgg(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField 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 ArrayAggOrderByStep>> multisetAgg(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField 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 ArrayAggOrderByStep>> multisetAgg(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField 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 ArrayAggOrderByStep>> multisetAgg(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField 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 ArrayAggOrderByStep>> multisetAgg(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField 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 ArrayAggOrderByStep>> multisetAgg(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField 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 ArrayAggOrderByStep>> multisetAgg(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField 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 ArrayAggOrderByStep>> multisetAgg(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15, SelectField 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 ArrayAggOrderByStep>> multisetAgg(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15, SelectField field16, SelectField 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 ArrayAggOrderByStep>> multisetAgg(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15, SelectField field16, SelectField field17, SelectField 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 ArrayAggOrderByStep>> multisetAgg(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15, SelectField field16, SelectField field17, SelectField field18, SelectField 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 ArrayAggOrderByStep>> multisetAgg(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15, SelectField field16, SelectField field17, SelectField field18, SelectField field19, SelectField 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 ArrayAggOrderByStep>> multisetAgg(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15, SelectField field16, SelectField field17, SelectField field18, SelectField field19, SelectField field20, SelectField 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 ArrayAggOrderByStep>> multisetAgg(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15, SelectField field16, SelectField field17, SelectField field18, SelectField field19, SelectField field20, SelectField field21, SelectField 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)); } diff --git a/jOOQ/src/main/java/org/jooq/impl/JSONArrayAgg.java b/jOOQ/src/main/java/org/jooq/impl/JSONArrayAgg.java index 4096e531cc..e189afce18 100644 --- a/jOOQ/src/main/java/org/jooq/impl/JSONArrayAgg.java +++ b/jOOQ/src/main/java/org/jooq/impl/JSONArrayAgg.java @@ -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 { 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; diff --git a/jOOQ/src/main/java/org/jooq/impl/JSONEntryImpl.java b/jOOQ/src/main/java/org/jooq/impl/JSONEntryImpl.java index 0b8f331682..fcca4a0561 100644 --- a/jOOQ/src/main/java/org/jooq/impl/JSONEntryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/JSONEntryImpl.java @@ -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 extends AbstractQueryPart implements JSONEntry, case MARIADB: case MYSQL: case POSTGRES: + case SQLITE: ctx.visit(key).sql(", ").visit(jsonCast(ctx, value)); break; @@ -148,6 +155,7 @@ final class JSONEntryImpl extends AbstractQueryPart implements JSONEntry, 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 extends AbstractQueryPart implements JSONEntry, break; + case SQLITE: + if (type.getType() == Boolean.class) + return function(N_JSON, SQLDataType.JSON, iif(condition((Field) field), inline("true"), inline("false"))); + + break; + diff --git a/jOOQ/src/main/java/org/jooq/impl/JSONNull.java b/jOOQ/src/main/java/org/jooq/impl/JSONNull.java index e5c519b34b..b723b216d1 100644 --- a/jOOQ/src/main/java/org/jooq/impl/JSONNull.java +++ b/jOOQ/src/main/java/org/jooq/impl/JSONNull.java @@ -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 NO_SUPPORT_ABSENT_ON_NULL = SQLDialect.supportedBy(MARIADB, MYSQL); + static final Set NO_SUPPORT_ABSENT_ON_NULL = SQLDialect.supportedBy(MARIADB, MYSQL, SQLITE); final JSONOnNull type; diff --git a/jOOQ/src/main/java/org/jooq/impl/JSONObjectAgg.java b/jOOQ/src/main/java/org/jooq/impl/JSONObjectAgg.java index 3d4b341090..9616dd75f8 100644 --- a/jOOQ/src/main/java/org/jooq/impl/JSONObjectAgg.java +++ b/jOOQ/src/main/java/org/jooq/impl/JSONObjectAgg.java @@ -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 { break; + case SQLITE: + acceptSQLite(ctx); + break; + default: acceptStandard(ctx); break; @@ -138,6 +143,19 @@ implements JSONObjectAggNullStep { 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 listagg = CustomField.of(Names.N_GROUP_CONCAT, VARCHAR, c1 -> { Field o1 = jsonObject(entry.key(), entry.value()); diff --git a/jOOQ/src/main/java/org/jooq/impl/JSONReturning.java b/jOOQ/src/main/java/org/jooq/impl/JSONReturning.java index f56e333f45..e18721dec7 100644 --- a/jOOQ/src/main/java/org/jooq/impl/JSONReturning.java +++ b/jOOQ/src/main/java/org/jooq/impl/JSONReturning.java @@ -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 NO_SUPPORT_RETURNING = SQLDialect.supportedBy(H2, MARIADB, MYSQL, POSTGRES); + static final Set NO_SUPPORT_RETURNING = SQLDialect.supportedBy(H2, MARIADB, MYSQL, POSTGRES, SQLITE); final DataType type; JSONReturning(DataType type) { diff --git a/jOOQ/src/main/java/org/jooq/impl/Names.java b/jOOQ/src/main/java/org/jooq/impl/Names.java index 068fa366bc..03b6455f47 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Names.java +++ b/jOOQ/src/main/java/org/jooq/impl/Names.java @@ -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"); diff --git a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java index 200b520487..5b3a0946a4 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java @@ -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; diff --git a/jOOQ/src/main/java/org/jooq/impl/Tools.java b/jOOQ/src/main/java/org/jooq/impl/Tools.java index 57861c076b..caacc84d36 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Tools.java +++ b/jOOQ/src/main/java/org/jooq/impl/Tools.java @@ -5883,6 +5883,7 @@ final class Tools { case MARIADB: case MYSQL: + case SQLITE: return NestedCollectionEmulation.JSON;