Skip to content

Commit 0a8acae

Browse files
committed
moar changes
1 parent b581a27 commit 0a8acae

File tree

2 files changed

+46
-13
lines changed

2 files changed

+46
-13
lines changed

src/snowflake/snowpark/_internal/ast/utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1492,8 +1492,8 @@ def clear_symbols_and_udfs(message: proto.Request) -> None:
14921492
stmt.assign.ClearField("symbol")
14931493
if str(stmt.assign.expr.udf):
14941494
stmt.assign.expr.ClearField("udf")
1495-
# if str(stmt.assign.expr.stored_procedure):
1496-
# stmt.assign.expr.ClearField("stored_procedure")
1495+
if str(stmt.assign.expr.stored_procedure):
1496+
stmt.assign.expr.ClearField("stored_procedure")
14971497

14981498

14991499
def base64_str_to_request(base64_str: str) -> proto.Request:

tests/ast/decoder.py

Lines changed: 44 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1646,9 +1646,13 @@ def decode_expr(self, expr: proto.Expr, **kwargs) -> Any:
16461646
return self.decode_expr(expr.sp_session_table_function.fn, **kwargs)
16471647

16481648
case "sp_table":
1649+
breakpoint()
16491650
assert expr.sp_table.HasField("name")
16501651
table_name = self.decode_name_expr(expr.sp_table.name)
1651-
return self.session.table(table_name)
1652+
is_temp_table_for_cleanup = expr.sp_table.is_temp_table_for_cleanup
1653+
return self.session.table(
1654+
table_name, is_temp_table_for_cleanup=is_temp_table_for_cleanup
1655+
)
16521656

16531657
case "sp_to_snowpark_pandas":
16541658
df = self.decode_expr(expr.sp_to_snowpark_pandas.df)
@@ -1953,10 +1957,29 @@ def decode_expr(self, expr: proto.Expr, **kwargs) -> Any:
19531957
return df.write
19541958

19551959
case "stored_procedure":
1960+
input_types = [
1961+
self.decode_data_type_expr(input_type)
1962+
for input_type in expr.stored_procedure.input_types.list
1963+
]
1964+
execute_as = expr.stored_procedure.execute_as
1965+
comment = expr.stored_procedure.comment.value
19561966
registered_object_name = self.decode_name_expr(
19571967
expr.stored_procedure.func.object_name
19581968
)
1959-
return self.session.sproc._registry[registered_object_name]
1969+
return_type = self.decode_data_type_expr(
1970+
expr.stored_procedure.return_type
1971+
)
1972+
name = self.decode_name_expr(expr.stored_procedure.name)
1973+
ret_sproc = sproc(
1974+
self.session.sproc._registry[registered_object_name],
1975+
name=name,
1976+
return_type=return_type,
1977+
input_types=input_types,
1978+
execute_as=execute_as,
1979+
comment=comment,
1980+
_registered_object_name=registered_object_name,
1981+
)
1982+
return ret_sproc
19601983

19611984
case "sp_flatten":
19621985
input = self.decode_expr(expr.sp_flatten.input)
@@ -2038,15 +2061,25 @@ def decode_expr(self, expr: proto.Expr, **kwargs) -> Any:
20382061
d = MessageToDict(expr.sp_write_table)
20392062
statement_params = self.get_statement_params(d)
20402063
block = expr.sp_write_table.block
2041-
comment = expr.sp_write_table.comment.value
2042-
enable_schema_evolution = (
2043-
expr.sp_write_table.enable_schema_evolution.value
2044-
)
2045-
data_retention_time = expr.sp_write_table.data_retention_time.value
2046-
max_data_extension_time = (
2047-
expr.sp_write_table.max_data_extension_time.value
2048-
)
2049-
change_tracking = expr.sp_write_table.change_tracking.value
2064+
comment = None
2065+
if "comment" in d:
2066+
comment = expr.sp_write_table.comment.value
2067+
enable_schema_evolution = None
2068+
if "enable_schema_evolution" in d:
2069+
enable_schema_evolution = (
2070+
expr.sp_write_table.enable_schema_evolution.value
2071+
)
2072+
data_retention_time = None
2073+
if "data_retention_time" in d:
2074+
data_retention_time = expr.sp_write_table.data_retention_time.value
2075+
max_data_extension_time = None
2076+
if "max_data_extension_time" in d:
2077+
max_data_extension_time = (
2078+
expr.sp_write_table.max_data_extension_time.value
2079+
)
2080+
change_tracking = None
2081+
if "change_tracking" in d:
2082+
change_tracking = expr.sp_write_table.change_tracking.value
20502083
copy_grants = expr.sp_write_table.copy_grants
20512084
iceberg_config = None
20522085
if hasattr(expr.sp_write_table, "iceberg_config"):

0 commit comments

Comments
 (0)