@@ -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