diff --git a/extensions/functions_arithmetic.yaml b/extensions/functions_arithmetic.yaml index 00d7f84de..b43366f5a 100644 --- a/extensions/functions_arithmetic.yaml +++ b/extensions/functions_arithmetic.yaml @@ -153,6 +153,40 @@ scalar_functions: - value: fp64 - value: fp64 return: fp64 + - + name: "negate" + description: "Negation of the value" + impls: + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: i8 + return: i8 + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: i16 + return: i16 + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: i32 + return: i32 + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: i64 + return: i64 + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: fp32 + return: fp32 + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: fp64 + return: fp64 - name: "modulus" description: "Get the remainder when dividing one value by another." @@ -173,6 +207,68 @@ scalar_functions: - value: i64 - value: i64 return: i64 + - + name: "power" + description: "Take the power with the first value as the base and second as exponent" + impls: + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: i8 + - value: i8 + return: i8 + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: i16 + - value: i16 + return: i16 + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: i32 + - value: i32 + return: i32 + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: i64 + - value: i64 + return: i64 + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: fp32 + - value: fp32 + return: fp32 + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: fp64 + - value: fp64 + return: fp64 + - + name: "sqrt" + description: "Square root of the value" + impls: + - args: + - value: i8 + return: fp32 + - args: + - value: i16 + return: fp32 + - args: + - value: i32 + return: fp32 + - args: + - value: i64 + return: fp64 + - args: + - value: fp32 + return: fp32 + - args: + - value: fp64 + return: fp64 aggregate_functions: - name: "sum" description: Sum a set of values. diff --git a/extensions/functions_comparison.yaml b/extensions/functions_comparison.yaml index ab7d118d6..76eaa6be7 100644 --- a/extensions/functions_comparison.yaml +++ b/extensions/functions_comparison.yaml @@ -73,4 +73,12 @@ scalar_functions: - value: any1 return: BOOLEAN nullability: DECLARED_OUTPUT + - + name: "is_nan" + description: Whether a value is not a number. + impls: + - args: + - value: any1 + return: BOOLEAN + nullability: DECLARED_OUTPUT diff --git a/extensions/functions_logarithmic.yaml b/extensions/functions_logarithmic.yaml new file mode 100644 index 000000000..25c6c552e --- /dev/null +++ b/extensions/functions_logarithmic.yaml @@ -0,0 +1,63 @@ +%YAML 1.2 +--- +scalar_functions: + - + name: "ln" + description: "Natural logarithm of the value" + impls: + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: fp32 + return: fp32 + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: fp64 + return: fp64 + - + name: "log10" + description: "Logarithm to base 10 of the value" + impls: + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: fp32 + return: fp32 + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: fp64 + return: fp64 + - + name: "log2" + description: "Logarithm to base 2 of the value" + impls: + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: fp32 + return: fp32 + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: fp64 + return: fp64 + - + name: "logb" + description: "Logarithm of the value with the given base" + impls: + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: fp32 + - value: fp32 + return: fp32 + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: fp64 + - value: fp64 + return: fp64 + + diff --git a/extensions/functions_rounding.yaml b/extensions/functions_rounding.yaml new file mode 100644 index 000000000..429d652bd --- /dev/null +++ b/extensions/functions_rounding.yaml @@ -0,0 +1,106 @@ +%YAML 1.2 +--- +scalar_functions: + - + name: "ceil" + description: "Rounding to the ceiling of the value" + impls: + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: i8 + return: i8 + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: i16 + return: i16 + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: i32 + return: i32 + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: i64 + return: i64 + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: fp32 + return: i32 + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: fp64 + return: i64 + - + name: "floor" + description: "Rounding to the floor of the value" + impls: + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: i8 + return: i8 + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: i16 + return: i16 + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: i32 + return: i32 + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: i64 + return: i64 + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: fp32 + return: i32 + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: fp64 + return: i64 + - + name: "round" + description: "Rounding off the value" + impls: + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: i8 + return: i8 + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: i16 + return: i16 + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: i32 + return: i32 + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: i64 + return: i64 + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: fp32 + return: fp32 + - args: + - options: [ SILENT, SATURATE, ERROR ] + required: false + - value: fp64 + return: fp64 + diff --git a/extensions/functions_string.yaml b/extensions/functions_string.yaml index 66b389301..201b24e36 100644 --- a/extensions/functions_string.yaml +++ b/extensions/functions_string.yaml @@ -44,7 +44,8 @@ scalar_functions: - value: i32 - value: i32 return: "string" - - name: starts_with + - + name: starts_with description: Whether this string starts with another string. impls: - args: @@ -163,3 +164,23 @@ scalar_functions: - value: "fixedchar" - value: "varchar" return: "BOOLEAN" + - + name: lower + description: Transforms the string to lower case characters + impls: + - args: + - value: "varchar" + return: "varchar" + - args: + - value: "string" + return: "string" + - + name: upper + description: Transforms the string to upper case characters + impls: + - args: + - value: "varchar" + return: "varchar" + - args: + - value: "string" + return: "string"