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 id_fn_functions() -> Vec<FunctionMeta> {
vec![
m(
"uuid",
Scalar,
0,
0,
no_trigger(),
Some(ColumnType::Uuid),
arg_types::NO_ARGS,
)
.volatile(),
m(
"uuid_v4",
Scalar,
0,
0,
no_trigger(),
Some(ColumnType::Uuid),
arg_types::NO_ARGS,
)
.volatile(),
m(
"gen_random_uuid",
Scalar,
0,
0,
no_trigger(),
Some(ColumnType::Uuid),
arg_types::NO_ARGS,
)
.volatile(),
m(
"uuid_v7",
Scalar,
0,
0,
no_trigger(),
Some(ColumnType::Uuid),
arg_types::NO_ARGS,
)
.volatile(),
m(
"ulid",
Scalar,
0,
0,
no_trigger(),
Some(ColumnType::Ulid),
arg_types::NO_ARGS,
)
.volatile(),
m(
"cuid2",
Scalar,
0,
0,
no_trigger(),
Some(ColumnType::String),
arg_types::NO_ARGS,
)
.volatile(),
m(
"nanoid",
Scalar,
0,
1,
no_trigger(),
Some(ColumnType::String),
arg_types::NANOID_ARGS,
)
.volatile(),
m(
"is_uuid",
Scalar,
1,
1,
no_trigger(),
Some(ColumnType::Bool),
arg_types::ID_CHECK_ARGS,
),
m(
"is_ulid",
Scalar,
1,
1,
no_trigger(),
Some(ColumnType::Bool),
arg_types::ID_CHECK_ARGS,
),
m(
"is_cuid2",
Scalar,
1,
1,
no_trigger(),
Some(ColumnType::Bool),
arg_types::ID_CHECK_ARGS,
),
m(
"is_nanoid",
Scalar,
1,
1,
no_trigger(),
Some(ColumnType::Bool),
arg_types::ID_CHECK_ARGS,
),
m(
"id_type",
Scalar,
1,
1,
no_trigger(),
Some(ColumnType::String),
arg_types::ID_CHECK_ARGS,
),
m(
"uuid_version",
Scalar,
1,
1,
no_trigger(),
Some(ColumnType::Int64),
arg_types::ID_CHECK_ARGS,
),
m(
"ulid_timestamp",
Scalar,
1,
1,
no_trigger(),
Some(ColumnType::Int64),
arg_types::ID_CHECK_ARGS,
),
]
}