Skip to content

Commit

Permalink
feat: add decimal argument support to round function
Browse files Browse the repository at this point in the history
The round function has a number of variants to support different numeric types.  This commit adds support for rounding decimals.
This is required for the spark module.

Signed-off-by: Andrew Coleman <[email protected]>
  • Loading branch information
andrew-coleman committed Sep 26, 2024
1 parent 1f3354d commit fee8ebc
Showing 1 changed file with 40 additions and 0 deletions.
40 changes: 40 additions & 0 deletions extensions/functions_rounding.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -268,3 +268,43 @@ scalar_functions:
AWAY_FROM_ZERO, TIE_DOWN, TIE_UP, TIE_TOWARDS_ZERO, TIE_TO_ODD ]
nullability: DECLARED_OUTPUT
return: fp64?
- args:
- value: decimal<P,S>
name: "x"
description: >
Numerical expression to be rounded.
- value: i32
name: "s"
description: >
Number of decimal places to be rounded to.
When `s` is a positive number, the rounding
is performed to a `s` number of decimal places.
When `s` is a negative number, the rounding is
performed to the left side of the decimal point
as specified by `s`.
options:
rounding:
description: >
When a boundary is computed to lie somewhere between two values,
and this value cannot be exactly represented, this specifies how
to round it.
- TIE_TO_EVEN: round to nearest value; if exactly halfway, tie
to the even option.
- TIE_AWAY_FROM_ZERO: round to nearest value; if exactly
halfway, tie away from zero.
- TRUNCATE: always round toward zero.
- CEILING: always round toward positive infinity.
- FLOOR: always round toward negative infinity.
- AWAY_FROM_ZERO: round negative values with FLOOR rule, round positive values with CEILING rule
- TIE_DOWN: round ties with FLOOR rule
- TIE_UP: round ties with CEILING rule
- TIE_TOWARDS_ZERO: round ties with TRUNCATE rule
- TIE_TO_ODD: round to nearest value; if exactly halfway, tie
to the odd option.
values: [ TIE_TO_EVEN, TIE_AWAY_FROM_ZERO, TRUNCATE, CEILING, FLOOR,
AWAY_FROM_ZERO, TIE_DOWN, TIE_UP, TIE_TOWARDS_ZERO, TIE_TO_ODD ]
nullability: DECLARED_OUTPUT
return: decimal?<P,S>

0 comments on commit fee8ebc

Please sign in to comment.