Skip to content

Commit

Permalink
feat: add functions for arithmetic, rounding, logarithmic, and string…
Browse files Browse the repository at this point in the history
… transformations
  • Loading branch information
sanjibansg committed Jun 22, 2022
1 parent af0b452 commit 41fb45a
Show file tree
Hide file tree
Showing 5 changed files with 295 additions and 1 deletion.
96 changes: 96 additions & 0 deletions extensions/functions_arithmetic.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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."
Expand All @@ -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.
Expand Down
8 changes: 8 additions & 0 deletions extensions/functions_comparison.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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

63 changes: 63 additions & 0 deletions extensions/functions_logarithmic.yaml
Original file line number Diff line number Diff line change
@@ -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


106 changes: 106 additions & 0 deletions extensions/functions_rounding.yaml
Original file line number Diff line number Diff line change
@@ -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

23 changes: 22 additions & 1 deletion extensions/functions_string.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -163,3 +164,23 @@ scalar_functions:
- value: "fixedchar<L1>"
- value: "varchar<L2>"
return: "BOOLEAN"
-
name: lower
description: Transforms the string to lower case characters
impls:
- args:
- value: "varchar<L1>"
return: "varchar<L1>"
- args:
- value: "string"
return: "string"
-
name: upper
description: Transforms the string to upper case characters
impls:
- args:
- value: "varchar<L1>"
return: "varchar<L1>"
- args:
- value: "string"
return: "string"

0 comments on commit 41fb45a

Please sign in to comment.