From 2fee25781972bea91991a47c001026ad7a0df645 Mon Sep 17 00:00:00 2001 From: Afroz Alam Date: Tue, 10 Dec 2024 11:18:14 -0800 Subject: [PATCH 1/2] add feedback --- src/snowflake/snowpark/_internal/utils.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/snowflake/snowpark/_internal/utils.py b/src/snowflake/snowpark/_internal/utils.py index bd27e46f2f..b9dbf0aff7 100644 --- a/src/snowflake/snowpark/_internal/utils.py +++ b/src/snowflake/snowpark/_internal/utils.py @@ -846,8 +846,9 @@ def infer_ast_enabled_from_global_sessions(func: Callable) -> bool: # pragma: n f"Could not retrieve default session " f"for function {func.__qualname__}, capturing AST by default." ) - # session has not been created yet. To not lose information, always encode AST. - return True # noqa: B012 + # session has not been created yet, do not encode AST be default. + # TODO: flip this to True when we go GA. + return False # noqa: B012 else: return session.ast_enabled # noqa: B012 @@ -868,6 +869,10 @@ def func_call_wrapper(*args, **kwargs): # pragma: no cover if "_emit_ast" in func.__code__.co_varnames and "_emit_ast" not in kwargs: # No arguments, or single argument with function. if len(args) == 0 or (len(args) == 1 and isinstance(args[0], Callable)): + # this can be refactored to + # - extract session + # - check isinstance(session, snowflake.snowpark.Session) + # - update kwargs["_emit_ast"] = value if func.__name__ in { "udf", "udtf", From 9155aa1c034a3a911204a907a3dd8db4bc5fccf3 Mon Sep 17 00:00:00 2001 From: Afroz Alam Date: Tue, 10 Dec 2024 11:19:26 -0800 Subject: [PATCH 2/2] add feedback --- src/snowflake/snowpark/session.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/snowflake/snowpark/session.py b/src/snowflake/snowpark/session.py index 0231ad9c87..a33e6d16ef 100644 --- a/src/snowflake/snowpark/session.py +++ b/src/snowflake/snowpark/session.py @@ -787,13 +787,17 @@ def ast_enabled(self, value: bool) -> None: # ) # except Exception: # pass + warn_session_config_update_in_multithreaded_mode( + "ast_enabled", self._conn._thread_safe_session_enabled + ) + self._ast_enabled = value # Auto temp cleaner has bad interactions with AST at the moment, disable when enabling AST. # This feature should get moved server-side anyways. if self._ast_enabled: + # TODO SNOW-1770278: Ensure auto temp table cleaner works with AST. _logger.warning( - "TODO SNOW-1770278: Ensure auto temp table cleaner works with AST." " Disabling auto temp cleaner for full test suite due to buggy behavior." ) self.auto_clean_up_temp_table_enabled = False