From 74c5958408d3bc57a276c1d010955169255efd77 Mon Sep 17 00:00:00 2001 From: Lorena Rosati Date: Wed, 6 Aug 2025 15:55:35 -0400 Subject: [PATCH 1/2] docs: inconsistent wording about minimum args for variadic functions --- site/docs/expressions/scalar_functions.md | 2 +- site/docs/types/type_classes.md | 15 ++------------- 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/site/docs/expressions/scalar_functions.md b/site/docs/expressions/scalar_functions.md index 3dec14393..5d43dcd73 100644 --- a/site/docs/expressions/scalar_functions.md +++ b/site/docs/expressions/scalar_functions.md @@ -8,7 +8,7 @@ A function is a scalar function if that function takes in values from a single r | List of arguments | Argument properties are defined below. Arguments can be fully defined or calculated with a type expression. See further details below. | Optional, defaults to niladic. | | Deterministic | Whether this function is expected to reproduce the same output when it is invoked multiple times with the same input. This informs a plan consumer on whether it can constant-reduce the defined function. An example would be a random() function, which is typically expected to be evaluated repeatedly despite having the same set of inputs. | Optional, defaults to true. | | Session Dependent | Whether this function is influenced by the session context it is invoked within. For example, a function may be influenced by a user who is invoking the function, the time zone of a session, or some other non-obvious parameter. This can inform caching systems on whether a particular function is cacheable. | Optional, defaults to false. | -| Variadic Behavior | Whether the last argument of the function is variadic or a single argument. If variadic, the argument can optionally have a lower bound (minimum number of instances) and an upper bound (maximum number of instances). | Optional, defaults to single value. | +| Variadic Behavior | Whether the last argument of the function is variadic or a single argument. If variadic, the argument can optionally have a lower bound (minimum number of instances) and an upper bound (maximum number of instances). The lower bound is the minimum specified in the function signature (inclusive) and the upper bound is the maximum specified in the function signature - 1(exclusive). | Optional, defaults to single value. | | Nullability Handling | Describes how nullability of input arguments maps to nullability of output arguments. Three options are: `MIRROR`, `DECLARED_OUTPUT` and `DISCRETE`. More details about nullability handling are listed below. | Optional, defaults to `MIRROR` | | Description | Additional description of function for implementers or users. Should be written human-readable to allow exposure to end users. Presented as a map with language => description mappings. E.g. `{ "en": "This adds two numbers together.", "fr": "cela ajoute deux nombres"}`. | Optional | | Return Value | The output type of the expression. Return types can be expressed as a fully-defined type or a type expression. See below for more on type expressions. | Required | diff --git a/site/docs/types/type_classes.md b/site/docs/types/type_classes.md index 2d7d2d245..ad974c32d 100644 --- a/site/docs/types/type_classes.md +++ b/site/docs/types/type_classes.md @@ -165,7 +165,7 @@ parameters: This specifies a vector that can be either 2- or 3-dimensional. Note however that it's not currently possible to put constraints on data type, string, or (technically) boolean parameters. -Similar to function arguments, the last parameter may be specified to be variadic, allowing it to be specified one or more times instead of only once. For example: +Similar to function arguments, the last parameter may be specified to be variadic, allowing it to be specified zero or more times instead of only once. For example: ```yaml name: union @@ -175,15 +175,4 @@ parameters: variadic: true ``` -This defines a type that can be parameterized with one or more other data types, for example `union` but also `union`. Zero or more is also possible, by making the last argument optional: - -```yaml -name: tuple -parameters: - - name: T - type: dataType - optional: true -variadic: true -``` - -This would also allow for `tuple<>`, to define a zero-tuple. +This defines a type that can be parameterized with zero or more other data types, for example `union` but also `union<>`. From d69c202015500764b872e67440be5447e72a2457 Mon Sep 17 00:00:00 2001 From: Lorena Rosati Date: Wed, 6 Aug 2025 15:59:07 -0400 Subject: [PATCH 2/2] docs: inconsistent wording about minimum args for variadic functions --- site/docs/expressions/scalar_functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/expressions/scalar_functions.md b/site/docs/expressions/scalar_functions.md index 5d43dcd73..0aae75e6d 100644 --- a/site/docs/expressions/scalar_functions.md +++ b/site/docs/expressions/scalar_functions.md @@ -8,7 +8,7 @@ A function is a scalar function if that function takes in values from a single r | List of arguments | Argument properties are defined below. Arguments can be fully defined or calculated with a type expression. See further details below. | Optional, defaults to niladic. | | Deterministic | Whether this function is expected to reproduce the same output when it is invoked multiple times with the same input. This informs a plan consumer on whether it can constant-reduce the defined function. An example would be a random() function, which is typically expected to be evaluated repeatedly despite having the same set of inputs. | Optional, defaults to true. | | Session Dependent | Whether this function is influenced by the session context it is invoked within. For example, a function may be influenced by a user who is invoking the function, the time zone of a session, or some other non-obvious parameter. This can inform caching systems on whether a particular function is cacheable. | Optional, defaults to false. | -| Variadic Behavior | Whether the last argument of the function is variadic or a single argument. If variadic, the argument can optionally have a lower bound (minimum number of instances) and an upper bound (maximum number of instances). The lower bound is the minimum specified in the function signature (inclusive) and the upper bound is the maximum specified in the function signature - 1(exclusive). | Optional, defaults to single value. | +| Variadic Behavior | Whether the last argument of the function is variadic or a single argument. If variadic, the argument can optionally have a lower bound (minimum number of instances) and an upper bound (maximum number of instances). The lower bound is the minimum specified in the function signature (inclusive) and the upper bound is the maximum specified in the function signature - 1 (exclusive). | Optional, defaults to single value. | | Nullability Handling | Describes how nullability of input arguments maps to nullability of output arguments. Three options are: `MIRROR`, `DECLARED_OUTPUT` and `DISCRETE`. More details about nullability handling are listed below. | Optional, defaults to `MIRROR` | | Description | Additional description of function for implementers or users. Should be written human-readable to allow exposure to end users. Presented as a map with language => description mappings. E.g. `{ "en": "This adds two numbers together.", "fr": "cela ajoute deux nombres"}`. | Optional | | Return Value | The output type of the expression. Return types can be expressed as a fully-defined type or a type expression. See below for more on type expressions. | Required |