Skip to content

Commit c689be5

Browse files
committed
added alias for cast
1 parent 009eb11 commit c689be5

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

src/substrait/builders/extended_expression.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222

2323
def _alias_or_inferred(
24-
alias: Union[Iterable[str], str],
24+
alias: Union[Iterable[str], str,None],
2525
op: str,
2626
args: Iterable[str],
2727
):
@@ -44,7 +44,7 @@ def resolve_expression(
4444

4545

4646
def literal(
47-
value: Any, type: stp.Type, alias: Union[Iterable[str], str] = None
47+
value: Any, type: stp.Type, alias: Union[Iterable[str], str,None] = None
4848
) -> UnboundExtendedExpression:
4949
"""Builds a resolver for ExtendedExpression containing a literal expression"""
5050

@@ -154,7 +154,7 @@ def resolve(
154154
return resolve
155155

156156

157-
def column(field: Union[str, int], alias: Union[Iterable[str], str] = None):
157+
def column(field: Union[str, int], alias: Union[Iterable[str], str,None] = None):
158158
"""Builds a resolver for ExtendedExpression containing a FieldReference expression
159159
160160
Accepts either an index or a field name of a desired field.
@@ -208,7 +208,7 @@ def scalar_function(
208208
urn: str,
209209
function: str,
210210
expressions: Iterable[ExtendedExpressionOrUnbound],
211-
alias: Union[Iterable[str], str] = None,
211+
alias: Union[Iterable[str], str,None] = None,
212212
):
213213
"""Builds a resolver for ExtendedExpression containing a ScalarFunction expression"""
214214

@@ -306,7 +306,7 @@ def aggregate_function(
306306
urn: str,
307307
function: str,
308308
expressions: Iterable[ExtendedExpressionOrUnbound],
309-
alias: Union[Iterable[str], str] = None,
309+
alias: Union[Iterable[str], str,None] = None,
310310
):
311311
"""Builds a resolver for ExtendedExpression containing a AggregateFunction measure"""
312312

@@ -402,7 +402,7 @@ def window_function(
402402
function: str,
403403
expressions: Iterable[ExtendedExpressionOrUnbound],
404404
partitions: Iterable[ExtendedExpressionOrUnbound] = [],
405-
alias: Union[Iterable[str], str] = None,
405+
alias: Union[Iterable[str], str,None] = None,
406406
):
407407
"""Builds a resolver for ExtendedExpression containing a WindowFunction expression"""
408408

@@ -512,7 +512,7 @@ def resolve(
512512
def if_then(
513513
ifs: Iterable[tuple[ExtendedExpressionOrUnbound, ExtendedExpressionOrUnbound]],
514514
_else: ExtendedExpressionOrUnbound,
515-
alias: Union[Iterable[str], str] = None,
515+
alias: Union[Iterable[str], str,None] = None,
516516
):
517517
"""Builds a resolver for ExtendedExpression containing an IfThen expression"""
518518

@@ -767,7 +767,7 @@ def resolve(
767767
return resolve
768768

769769

770-
def cast(input: ExtendedExpressionOrUnbound, type: stp.Type):
770+
def cast(input: ExtendedExpressionOrUnbound, type: stp.Type,alias: Union[Iterable[str], str,None] = None):
771771
"""Builds a resolver for ExtendedExpression containing a cast expression"""
772772

773773
def resolve(
@@ -785,7 +785,8 @@ def resolve(
785785
failure_behavior=stalg.Expression.Cast.FAILURE_BEHAVIOR_RETURN_NULL,
786786
)
787787
),
788-
output_names=["cast"], # TODO construct name from inputs
788+
output_names=_alias_or_inferred(alias, "cast", []),
789+
789790
)
790791
],
791792
base_schema=base_schema,

0 commit comments

Comments
 (0)