[jOOQ/jOOQ#16227] Add JSON_ARRAY_LENGTH() function support
Support also: - MariaDB - MySQL - Oracle - SQL Server - SQLite
This commit is contained in:
parent
35aa5fb38d
commit
1e31cbd88a
@ -23320,7 +23320,7 @@ public class DSL {
|
||||
* @param field is wrapped as {@link DSL#val(Object)}.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ POSTGRES, YUGABYTEDB })
|
||||
@Support({ MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
public static Field<Integer> jsonArrayLength(JSON field) {
|
||||
return new JSONArrayLength(Tools.field(field));
|
||||
}
|
||||
@ -23331,7 +23331,7 @@ public class DSL {
|
||||
* Calculate the length of a JSON array.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ POSTGRES, YUGABYTEDB })
|
||||
@Support({ MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
public static Field<Integer> jsonArrayLength(Field<JSON> field) {
|
||||
return new JSONArrayLength(field);
|
||||
}
|
||||
@ -23344,7 +23344,7 @@ public class DSL {
|
||||
* @param field is wrapped as {@link DSL#val(Object)}.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ POSTGRES, YUGABYTEDB })
|
||||
@Support({ MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
public static Field<Integer> jsonbArrayLength(JSONB field) {
|
||||
return new JSONBArrayLength(Tools.field(field));
|
||||
}
|
||||
@ -23355,7 +23355,7 @@ public class DSL {
|
||||
* Calculate the length of a JSONB array.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ POSTGRES, YUGABYTEDB })
|
||||
@Support({ MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
public static Field<Integer> jsonbArrayLength(Field<JSONB> field) {
|
||||
return new JSONBArrayLength(field);
|
||||
}
|
||||
|
||||
@ -91,7 +91,29 @@ implements
|
||||
|
||||
@Override
|
||||
final boolean parenthesised(Context<?> ctx) {
|
||||
return true;
|
||||
switch (ctx.family()) {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
case MARIADB:
|
||||
case MYSQL:
|
||||
return true;
|
||||
|
||||
|
||||
|
||||
case POSTGRES:
|
||||
case SQLITE:
|
||||
case YUGABYTEDB:
|
||||
return true;
|
||||
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -105,7 +127,23 @@ implements
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
case MARIADB:
|
||||
case MYSQL:
|
||||
ctx.visit(function(N_JSON_LENGTH, getDataType(), field));
|
||||
break;
|
||||
|
||||
|
||||
|
||||
case POSTGRES:
|
||||
case SQLITE:
|
||||
case YUGABYTEDB:
|
||||
ctx.visit(function(N_JSON_ARRAY_LENGTH, getDataType(), field));
|
||||
break;
|
||||
|
||||
@ -91,7 +91,28 @@ implements
|
||||
|
||||
@Override
|
||||
final boolean parenthesised(Context<?> ctx) {
|
||||
return true;
|
||||
switch (ctx.family()) {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
case MARIADB:
|
||||
case MYSQL:
|
||||
return true;
|
||||
|
||||
|
||||
|
||||
case POSTGRES:
|
||||
case YUGABYTEDB:
|
||||
return true;
|
||||
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -105,6 +126,21 @@ implements
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
case MARIADB:
|
||||
case MYSQL:
|
||||
ctx.visit(function(N_JSON_LENGTH, getDataType(), field));
|
||||
break;
|
||||
|
||||
|
||||
|
||||
case POSTGRES:
|
||||
case YUGABYTEDB:
|
||||
ctx.visit(function(N_JSONB_ARRAY_LENGTH, getDataType(), field));
|
||||
|
||||
@ -451,6 +451,7 @@ final class Names {
|
||||
static final Name N_JSON_GET_ELEMENT_AS_TEXT = systemName("json_get_element_as_text");
|
||||
static final Name N_JSON_INSERT = systemName("json_insert");
|
||||
static final Name N_JSON_KEYS = systemName("json_keys");
|
||||
static final Name N_JSON_LENGTH = systemName("json_length");
|
||||
static final Name N_JSON_MODIFY = systemName("json_modify");
|
||||
static final Name N_JSON_OBJECT = systemName("json_object");
|
||||
static final Name N_JSON_REMOVE = systemName("json_remove");
|
||||
|
||||
Loading…
Reference in New Issue
Block a user