use nodedb_types::columnar::ColumnType;
use crate::functions::arg_types;
use crate::functions::registry::{FunctionCategory::Scalar, FunctionMeta};
use super::super::helpers::{m, no_trigger};
pub(super) fn json_legacy_functions() -> Vec<FunctionMeta> {
vec![
m(
"json_extract",
Scalar,
2,
2,
no_trigger(),
None,
arg_types::JSON_EXTRACT_ARGS,
),
m(
"json_get",
Scalar,
2,
2,
no_trigger(),
None,
arg_types::JSON_EXTRACT_ARGS,
),
m(
"json_set",
Scalar,
3,
3,
no_trigger(),
Some(ColumnType::Json),
arg_types::JSON_SET_ARGS,
),
m(
"json_remove",
Scalar,
2,
2,
no_trigger(),
Some(ColumnType::Json),
arg_types::JSON_REMOVE_ARGS,
),
m(
"json_keys",
Scalar,
1,
1,
no_trigger(),
Some(ColumnType::Array),
arg_types::JSON_1_ARGS,
),
m(
"json_values",
Scalar,
1,
1,
no_trigger(),
Some(ColumnType::Array),
arg_types::JSON_1_ARGS,
),
m(
"json_length",
Scalar,
1,
1,
no_trigger(),
Some(ColumnType::Int64),
arg_types::JSON_1_ARGS,
),
m(
"json_len",
Scalar,
1,
1,
no_trigger(),
Some(ColumnType::Int64),
arg_types::JSON_1_ARGS,
),
m(
"json_type",
Scalar,
1,
1,
no_trigger(),
Some(ColumnType::String),
arg_types::JSON_1_ARGS,
),
m(
"json_array",
Scalar,
0,
255,
no_trigger(),
Some(ColumnType::Array),
arg_types::JSON_ARRAY_ARGS,
),
m(
"json_object",
Scalar,
0,
255,
no_trigger(),
Some(ColumnType::Json),
arg_types::JSON_OBJECT_ARGS,
),
m(
"json_contains",
Scalar,
2,
2,
no_trigger(),
Some(ColumnType::Bool),
arg_types::JSON_CONTAINS_ARGS,
),
m(
"json_merge",
Scalar,
2,
2,
no_trigger(),
Some(ColumnType::Json),
arg_types::JSON_MERGE_ARGS,
),
m(
"json_patch",
Scalar,
2,
2,
no_trigger(),
Some(ColumnType::Json),
arg_types::JSON_MERGE_ARGS,
),
]
}