gravitino.api.function.function_definition.FunctionDefinitions

class gravitino.api.function.function_definition.FunctionDefinitions

Bases: object

Factory class for creating FunctionDefinition instances.

__init__()

Methods

__init__()

of(parameters, return_type, impls)

Create a FunctionDefinition instance for a scalar or aggregate function.

of_table(parameters, return_columns, impls)

Create a FunctionDefinition instance for a table-valued function.

class SimpleFunctionDefinition(parameters: List[FunctionParam], return_type: Type | None, return_columns: List[FunctionColumn] | None, impls: List[FunctionImpl])

Bases: FunctionDefinition

Simple implementation of FunctionDefinition.

EMPTY_COLUMNS: List[FunctionColumn] = []

An empty list of FunctionColumn.

impls() List[FunctionImpl]

Returns the implementations associated with this definition.

parameters() List[FunctionParam]

Returns the parameters for this definition.

Returns:

The parameters for this definition. May be an empty list for a no-arg definition.

return_columns() List[FunctionColumn]

The output columns for a table-valued function definition.

A table-valued function is a function that returns a table instead of a scalar value or an aggregate result. The returned table has a fixed schema defined by the columns returned from this method.

Returns:

The output columns that define the schema of the table returned by this definition, or an empty list if this is a scalar or aggregate function definition.

return_type() Type | None

The return type for scalar or aggregate function definitions.

Returns:

The return type, or None if this is a table-valued function definition.

classmethod of(parameters: List[FunctionParam], return_type: Type, impls: List[FunctionImpl]) FunctionDefinition

Create a FunctionDefinition instance for a scalar or aggregate function.

Args:

parameters: The parameters for this definition, may be empty. return_type: The return type for this definition, must not be None. impls: The implementations for this definition, must not be empty.

Returns:

A FunctionDefinition instance.

Raises:

ValueError: If return_type is None.

classmethod of_table(parameters: List[FunctionParam], return_columns: List[FunctionColumn], impls: List[FunctionImpl]) FunctionDefinition

Create a FunctionDefinition instance for a table-valued function.

Args:

parameters: The parameters for this definition, may be empty. return_columns: The return columns for this definition, must not be empty. impls: The implementations for this definition, must not be empty.

Returns:

A FunctionDefinition instance.

Raises:

ValueError: If return_columns is None or empty.