snowpark-connect 0.27.0__py3-none-any.whl → 0.28.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of snowpark-connect might be problematic. Click here for more details.

Files changed (42) hide show
  1. snowflake/snowpark_connect/column_name_handler.py +3 -93
  2. snowflake/snowpark_connect/config.py +99 -1
  3. snowflake/snowpark_connect/dataframe_container.py +0 -6
  4. snowflake/snowpark_connect/execute_plan/map_execution_command.py +31 -68
  5. snowflake/snowpark_connect/expression/map_expression.py +22 -7
  6. snowflake/snowpark_connect/expression/map_sql_expression.py +22 -18
  7. snowflake/snowpark_connect/expression/map_unresolved_attribute.py +4 -26
  8. snowflake/snowpark_connect/expression/map_unresolved_function.py +12 -3
  9. snowflake/snowpark_connect/expression/map_unresolved_star.py +2 -3
  10. snowflake/snowpark_connect/includes/jars/sas-scala-udf_2.12-0.1.0.jar +0 -0
  11. snowflake/snowpark_connect/relation/catalogs/snowflake_catalog.py +207 -20
  12. snowflake/snowpark_connect/relation/map_extension.py +14 -10
  13. snowflake/snowpark_connect/relation/map_join.py +62 -258
  14. snowflake/snowpark_connect/relation/map_relation.py +5 -1
  15. snowflake/snowpark_connect/relation/map_sql.py +464 -68
  16. snowflake/snowpark_connect/relation/read/map_read_table.py +58 -0
  17. snowflake/snowpark_connect/relation/write/map_write.py +228 -120
  18. snowflake/snowpark_connect/resources_initializer.py +20 -5
  19. snowflake/snowpark_connect/server.py +16 -17
  20. snowflake/snowpark_connect/utils/concurrent.py +4 -0
  21. snowflake/snowpark_connect/utils/context.py +21 -0
  22. snowflake/snowpark_connect/utils/describe_query_cache.py +57 -51
  23. snowflake/snowpark_connect/utils/identifiers.py +128 -2
  24. snowflake/snowpark_connect/utils/io_utils.py +21 -1
  25. snowflake/snowpark_connect/utils/scala_udf_utils.py +34 -43
  26. snowflake/snowpark_connect/utils/session.py +16 -26
  27. snowflake/snowpark_connect/utils/telemetry.py +53 -0
  28. snowflake/snowpark_connect/utils/temporary_view_cache.py +61 -0
  29. snowflake/snowpark_connect/utils/udf_utils.py +9 -8
  30. snowflake/snowpark_connect/utils/udtf_utils.py +3 -2
  31. snowflake/snowpark_connect/version.py +1 -1
  32. {snowpark_connect-0.27.0.dist-info → snowpark_connect-0.28.1.dist-info}/METADATA +2 -2
  33. {snowpark_connect-0.27.0.dist-info → snowpark_connect-0.28.1.dist-info}/RECORD +41 -41
  34. snowflake/snowpark_connect/hidden_column.py +0 -39
  35. {snowpark_connect-0.27.0.data → snowpark_connect-0.28.1.data}/scripts/snowpark-connect +0 -0
  36. {snowpark_connect-0.27.0.data → snowpark_connect-0.28.1.data}/scripts/snowpark-session +0 -0
  37. {snowpark_connect-0.27.0.data → snowpark_connect-0.28.1.data}/scripts/snowpark-submit +0 -0
  38. {snowpark_connect-0.27.0.dist-info → snowpark_connect-0.28.1.dist-info}/WHEEL +0 -0
  39. {snowpark_connect-0.27.0.dist-info → snowpark_connect-0.28.1.dist-info}/licenses/LICENSE-binary +0 -0
  40. {snowpark_connect-0.27.0.dist-info → snowpark_connect-0.28.1.dist-info}/licenses/LICENSE.txt +0 -0
  41. {snowpark_connect-0.27.0.dist-info → snowpark_connect-0.28.1.dist-info}/licenses/NOTICE-binary +0 -0
  42. {snowpark_connect-0.27.0.dist-info → snowpark_connect-0.28.1.dist-info}/top_level.txt +0 -0
@@ -8,7 +8,7 @@ from collections.abc import Sequence
8
8
  from typing import Any
9
9
 
10
10
  from snowflake import snowpark
11
- from snowflake.snowpark.exceptions import SnowparkClientException, SnowparkSQLException
11
+ from snowflake.snowpark.exceptions import SnowparkClientException
12
12
  from snowflake.snowpark.session import _get_active_session
13
13
  from snowflake.snowpark_connect.constants import DEFAULT_CONNECTION_NAME
14
14
  from snowflake.snowpark_connect.utils.describe_query_cache import (
@@ -50,7 +50,10 @@ def _get_current_snowpark_session() -> snowpark.Session | None:
50
50
 
51
51
  def configure_snowpark_session(session: snowpark.Session):
52
52
  """Configure a snowpark session with required parameters and settings."""
53
- from snowflake.snowpark_connect.config import global_config
53
+ from snowflake.snowpark_connect.config import (
54
+ get_cte_optimization_enabled,
55
+ global_config,
56
+ )
54
57
 
55
58
  logger.info(f"Configuring session {session}")
56
59
 
@@ -77,6 +80,14 @@ def configure_snowpark_session(session: snowpark.Session):
77
80
  session.connection.arrow_number_to_decimal_setter = True
78
81
  session.custom_package_usage_config["enabled"] = True
79
82
 
83
+ # Configure CTE optimization based on session configuration
84
+ cte_optimization_enabled = get_cte_optimization_enabled()
85
+ session.cte_optimization_enabled = cte_optimization_enabled
86
+ logger.info(f"CTE optimization enabled: {cte_optimization_enabled}")
87
+
88
+ # Default query tag to be used unless overridden by user using AppName or spark.addTag()
89
+ query_tag = "SNOWPARK_CONNECT_QUERY"
90
+
80
91
  default_fallback_timezone = "UTC"
81
92
  if global_config.spark_sql_session_timeZone is None:
82
93
  try:
@@ -104,35 +115,14 @@ def configure_snowpark_session(session: snowpark.Session):
104
115
  "QUOTED_IDENTIFIERS_IGNORE_CASE": "false",
105
116
  "PYTHON_SNOWPARK_ENABLE_THREAD_SAFE_SESSION": "true",
106
117
  "PYTHON_SNOWPARK_USE_SCOPED_TEMP_OBJECTS": "false", # this is required for creating udfs from sproc
118
+ "ENABLE_STRUCTURED_TYPES_IN_SNOWPARK_CONNECT_RESPONSE": "true",
119
+ "QUERY_TAG": f"'{query_tag}'",
107
120
  }
108
121
 
109
122
  session.sql(
110
123
  f"ALTER SESSION SET {', '.join([f'{k} = {v}' for k, v in session_params.items()])}"
111
124
  ).collect()
112
125
 
113
- # Rolling ahead in preparation of GS release 9.22 (ETA 8/5/2025). Once 9.22 is past rollback risk, merge this
114
- # parameter with other in the session_params dictionary above
115
- try:
116
- session.sql(
117
- "ALTER SESSION SET ENABLE_STRUCTURED_TYPES_IN_SNOWPARK_CONNECT_RESPONSE=true"
118
- ).collect()
119
- except SnowparkSQLException:
120
- logger.debug(
121
- "ENABLE_STRUCTURED_TYPES_IN_SNOWPARK_CONNECT_RESPONSE is not defined"
122
- )
123
- try:
124
- session.sql(
125
- "ALTER SESSION SET ENABLE_STRUCTURED_TYPES_NATIVE_ARROW_FORMAT=true"
126
- ).collect()
127
- except SnowparkSQLException:
128
- logger.debug("ENABLE_STRUCTURED_TYPES_NATIVE_ARROW_FORMAT is not defined")
129
- try:
130
- session.sql(
131
- "ALTER SESSION SET ENABLE_STRUCTURED_TYPES_IN_CLIENT_RESPONSE=true"
132
- ).collect()
133
- except SnowparkSQLException:
134
- logger.debug("ENABLE_STRUCTURED_TYPES_IN_CLIENT_RESPONSE is not defined")
135
-
136
126
  # Instrument the snowpark session to use a cache for describe queries.
137
127
  instrument_session_for_describe_cache(session)
138
128
 
@@ -204,5 +194,5 @@ def set_query_tags(spark_tags: Sequence[str]) -> None:
204
194
  snowpark_session = get_or_create_snowpark_session()
205
195
  spark_tags_str = ",".join(sorted(spark_tags)) if spark_tags else None
206
196
 
207
- if spark_tags_str != snowpark_session.query_tag:
197
+ if spark_tags_str and spark_tags_str != snowpark_session.query_tag:
208
198
  snowpark_session.query_tag = spark_tags_str
@@ -88,6 +88,7 @@ RECORDED_CONFIG_KEYS = {
88
88
  "spark.sql.session.localRelationCacheThreshold",
89
89
  "spark.sql.mapKeyDedupPolicy",
90
90
  "snowpark.connect.sql.passthrough",
91
+ "snowpark.connect.cte.optimization_enabled",
91
92
  "snowpark.connect.iceberg.external_volume",
92
93
  "snowpark.connect.sql.identifiers.auto-uppercase",
93
94
  "snowpark.connect.udtf.compatibility_mode",
@@ -426,6 +427,58 @@ class Telemetry:
426
427
 
427
428
  summary["internal_queries"] += 1
428
429
 
430
+ @safe
431
+ def report_describe_query_cache_lookup(self):
432
+ """Report a describe query cache lookup."""
433
+ if self._not_in_request():
434
+ return
435
+
436
+ summary = self._request_summary.get()
437
+
438
+ if "describe_cache_lookups" not in summary:
439
+ summary["describe_cache_lookups"] = 0
440
+
441
+ summary["describe_cache_lookups"] += 1
442
+
443
+ @safe
444
+ def report_describe_query_cache_hit(self):
445
+ """Report a describe query cache hit."""
446
+ if self._not_in_request():
447
+ return
448
+
449
+ summary = self._request_summary.get()
450
+
451
+ if "describe_cache_hits" not in summary:
452
+ summary["describe_cache_hits"] = 0
453
+
454
+ summary["describe_cache_hits"] += 1
455
+
456
+ @safe
457
+ def report_describe_query_cache_expired(self):
458
+ """Report a describe query cache hit."""
459
+ if self._not_in_request():
460
+ return
461
+
462
+ summary = self._request_summary.get()
463
+
464
+ if "describe_cache_expired" not in summary:
465
+ summary["describe_cache_expired"] = 0
466
+
467
+ summary["describe_cache_expired"] += 1
468
+
469
+ @safe
470
+ def report_describe_query_cache_clear(self, query_prefix: str):
471
+ """Report a describe query cache clear."""
472
+ if self._not_in_request():
473
+ return
474
+
475
+ summary = self._request_summary.get()
476
+
477
+ if "describe_cache_clears" not in summary:
478
+ summary["describe_cache_clears"] = []
479
+
480
+ summary["describe_cache_clears"].append(query_prefix)
481
+
429
482
  @safe
430
483
  def report_udf_usage(self, udf_name: str):
431
484
  if self._not_in_request():
@@ -0,0 +1,61 @@
1
+ #
2
+ # Copyright (c) 2012-2025 Snowflake Computing Inc. All rights reserved.
3
+ #
4
+
5
+ from typing import Optional, Tuple
6
+
7
+ from pyspark.errors import AnalysisException
8
+
9
+ from snowflake.snowpark_connect.dataframe_container import DataFrameContainer
10
+ from snowflake.snowpark_connect.utils.concurrent import SynchronizedDict
11
+ from snowflake.snowpark_connect.utils.context import get_session_id
12
+
13
+ _temp_views = SynchronizedDict[Tuple[str, str], DataFrameContainer]()
14
+
15
+
16
+ def register_temp_view(name: str, df: DataFrameContainer, replace: bool) -> None:
17
+ normalized_name = _normalize(name)
18
+ current_session_id = get_session_id()
19
+ for key in list(_temp_views.keys()):
20
+ if _normalize(key[0]) == normalized_name and key[1] == current_session_id:
21
+ if replace:
22
+ _temp_views.remove(key)
23
+ break
24
+ else:
25
+ raise AnalysisException(
26
+ f"[TEMP_TABLE_OR_VIEW_ALREADY_EXISTS] Cannot create the temporary view `{name}` because it already exists."
27
+ )
28
+
29
+ _temp_views[(name, current_session_id)] = df
30
+
31
+
32
+ def unregister_temp_view(name: str) -> bool:
33
+ normalized_name = _normalize(name)
34
+
35
+ for key in _temp_views.keys():
36
+ normalized_key = _normalize(key[0])
37
+ if normalized_name == normalized_key and key[1] == get_session_id():
38
+ pop_result = _temp_views.remove(key)
39
+ return pop_result is not None
40
+ return False
41
+
42
+
43
+ def get_temp_view(name: str) -> Optional[DataFrameContainer]:
44
+ normalized_name = _normalize(name)
45
+ for key in _temp_views.keys():
46
+ normalized_key = _normalize(key[0])
47
+ if normalized_name == normalized_key and key[1] == get_session_id():
48
+ return _temp_views.get(key)
49
+ return None
50
+
51
+
52
+ def get_temp_view_normalized_names() -> list[str]:
53
+ return [
54
+ _normalize(key[0]) for key in _temp_views.keys() if key[1] == get_session_id()
55
+ ]
56
+
57
+
58
+ def _normalize(name: str) -> str:
59
+ from snowflake.snowpark_connect.config import global_config
60
+
61
+ return name if global_config.spark_sql_caseSensitive else name.lower()
@@ -176,14 +176,6 @@ class ProcessCommonInlineUserDefinedFunction:
176
176
  tar_ref.extractall(archive[: -len(".archive")])
177
177
  os.remove(archive)
178
178
 
179
- def callable_func(*args, **kwargs):
180
- import_staged_files()
181
- return original_callable(*args, **kwargs)
182
-
183
- callable_func.__signature__ = inspect.signature(original_callable)
184
- if hasattr(original_callable, "__annotations__"):
185
- callable_func.__annotations__ = original_callable.__annotations__
186
-
187
179
  if self._udf_packages:
188
180
  packages = [p.strip() for p in self._udf_packages.strip("[]").split(",")]
189
181
  else:
@@ -193,6 +185,15 @@ class ProcessCommonInlineUserDefinedFunction:
193
185
  else:
194
186
  imports = []
195
187
 
188
+ def callable_func(*args, **kwargs):
189
+ if imports:
190
+ import_staged_files()
191
+ return original_callable(*args, **kwargs)
192
+
193
+ callable_func.__signature__ = inspect.signature(original_callable)
194
+ if hasattr(original_callable, "__annotations__"):
195
+ callable_func.__annotations__ = original_callable.__annotations__
196
+
196
197
  update_none_input_types()
197
198
 
198
199
  needs_struct_conversion = isinstance(self._original_return_type, StructType)
@@ -38,8 +38,9 @@ def create_udtf(
38
38
  # We subtract one here since UDTF functions are class methods and always have "self" as the first parameter.
39
39
  input_types = [VariantType()] * (len(func_signature.parameters) - 1)
40
40
 
41
- # Wrapp callable to allow reading imported files
42
- callable_func = artifacts_reader_wrapper(callable_func)
41
+ if imports:
42
+ # Wrapp callable to allow reading imported files
43
+ callable_func = artifacts_reader_wrapper(callable_func)
43
44
 
44
45
  if is_arrow_enabled:
45
46
  callable_func = spark_compatible_udtf_wrapper_with_arrow(
@@ -2,4 +2,4 @@
2
2
  #
3
3
  # Copyright (c) 2012-2025 Snowflake Computing Inc. All rights reserved.
4
4
  #
5
- VERSION = (0,27,0)
5
+ VERSION = (0,28,1)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snowpark-connect
3
- Version: 0.27.0
3
+ Version: 0.28.1
4
4
  Summary: Snowpark Connect for Spark
5
5
  Author: Snowflake, Inc
6
6
  License: Apache License, Version 2.0
@@ -16,7 +16,7 @@ Requires-Dist: jpype1
16
16
  Requires-Dist: protobuf<5.0,>=4.25.3
17
17
  Requires-Dist: s3fs>=2025.3.0
18
18
  Requires-Dist: snowflake.core<2,>=1.0.5
19
- Requires-Dist: snowflake-snowpark-python[pandas]<1.39.0,==1.38.0
19
+ Requires-Dist: snowflake-snowpark-python[pandas]<1.40.0,==1.39.0
20
20
  Requires-Dist: sqlglot>=26.3.8
21
21
  Requires-Dist: jaydebeapi
22
22
  Requires-Dist: aiobotocore~=2.23.0
@@ -1,20 +1,19 @@
1
1
  snowflake/snowpark_connect/__init__.py,sha256=Sml4x1LTNnxZyw6nnDeJrZWUi3eUAR46Rsw6N-wHUSA,605
2
- snowflake/snowpark_connect/column_name_handler.py,sha256=_bTrguwdiF_cqFvoihFU7f42lNqtJ3Af-9fPvSLbf_A,31919
3
- snowflake/snowpark_connect/config.py,sha256=3rdbc05u0IcivwsdUwV4Wg9u6Tf-AhPT2INIinhv1PY,24948
2
+ snowflake/snowpark_connect/column_name_handler.py,sha256=_Z2j4teR_3nsCLjMxhyChGmds_1v6tP51OfkEpmWXWk,27164
3
+ snowflake/snowpark_connect/config.py,sha256=B2TeNqpfFy2ObjuUhgBNOhQ0Knxc7ZYiI7doOSkuSFw,28146
4
4
  snowflake/snowpark_connect/constants.py,sha256=FBDxNUxdqWxnf6d5-eanHlYdFFyQqCqvNyZG-uOiO6Q,598
5
5
  snowflake/snowpark_connect/control_server.py,sha256=mz3huYo84hgqUB6maZxu3LYyGq7vVL1nv7-7-MjuSYY,1956
6
- snowflake/snowpark_connect/dataframe_container.py,sha256=sCzMxzb6UIJz1mVpwzSYeVBiqtSzZv5n_pn7FVhbRv0,9114
6
+ snowflake/snowpark_connect/dataframe_container.py,sha256=0ozyUXrWErzM7Gltnb-i2o5ZyXVVeT_HCqpuYliQXwc,8798
7
7
  snowflake/snowpark_connect/dataframe_name_handler.py,sha256=aR-CpdGsN2d6tNW0H_F9P-FLe5hDU68zJwKjsrgeA2g,1682
8
8
  snowflake/snowpark_connect/date_time_format_mapping.py,sha256=qtQ-JTGR1VRWM2oxM1aYggE_g-BNouffeHxmCk89xkk,16809
9
9
  snowflake/snowpark_connect/empty_dataframe.py,sha256=aKO6JkYnArWCpLGcn9BzvTspw2k_c6eAM0mQImAY0J0,428
10
- snowflake/snowpark_connect/hidden_column.py,sha256=k56-e97vqQmoOFtOtIPy6rSu8mZAz-toKHoIBXYW3CU,1322
11
- snowflake/snowpark_connect/resources_initializer.py,sha256=njE4_L82evaCwFYPGBUX6OEVaHqww42oGXXmzUylt0I,4424
12
- snowflake/snowpark_connect/server.py,sha256=uYw0pbpWmgfRkrgI5Q5vFsu3Ng-5_H3SR86KkC13S8M,51108
10
+ snowflake/snowpark_connect/resources_initializer.py,sha256=GqBaiFrK9dWec3NLuNZuuxx5Ebw_ZCiMyFrS2KjK2fw,5084
11
+ snowflake/snowpark_connect/server.py,sha256=Hi9FYtIHJXURgMS3On50b5BXJQjMv220_h_jttkHUkI,51015
13
12
  snowflake/snowpark_connect/start_server.py,sha256=udegO0rk2FeSnXsIcCIYQW3VRlGDjB_cU8lJ8xSzuM8,942
14
13
  snowflake/snowpark_connect/tcm.py,sha256=ftncZFbVO-uyWMhF1_HYKQykB7KobHEYoyQsYbQj1EM,203
15
14
  snowflake/snowpark_connect/type_mapping.py,sha256=6Hg-h1iVzVB_FnwG3Sjl-UGr2Itrs4LxVb2Pz5Ue-YA,41566
16
15
  snowflake/snowpark_connect/typed_column.py,sha256=Tavii8b4zMj5IWOvN6tlOVmC80W6eQct0pC_tF2nlhU,3867
17
- snowflake/snowpark_connect/version.py,sha256=7e7JVBr1dPQ6_J46i0ARFv1O8q5XD9BxRNnNSMkrI0M,118
16
+ snowflake/snowpark_connect/version.py,sha256=174Rf6GxIIk1u2aUG821BNtN-OKC59qCc6Nc3xldSWw,118
18
17
  snowflake/snowpark_connect/analyze_plan/__init__.py,sha256=xsIE96jDASko3F-MeNf4T4Gg5ufthS8CejeiJDfri0M,76
19
18
  snowflake/snowpark_connect/analyze_plan/map_tree_string.py,sha256=Q3ZD-Z7uForrF7W3mSAjwaiEcIv2KDXr5jPfVbromVg,1470
20
19
  snowflake/snowpark_connect/error/__init__.py,sha256=oQo6k4zztLmNF1c5IvJLcS99J6RWY9KBTN3RJ2pKimg,249
@@ -22,7 +21,7 @@ snowflake/snowpark_connect/error/error_mapping.py,sha256=vdnLOU1Sqpocpu_uCXjfhiv
22
21
  snowflake/snowpark_connect/error/error_utils.py,sha256=Sb_p5dsrFZsLrR9B_Tp8d80Z6KcPtz9OM40lNbgsgRI,14863
23
22
  snowflake/snowpark_connect/error/exceptions.py,sha256=EOnTDiJZuVJ9dNBzy5cK0OBprbYCD3gWTCCLITjd1mY,677
24
23
  snowflake/snowpark_connect/execute_plan/__init__.py,sha256=xsIE96jDASko3F-MeNf4T4Gg5ufthS8CejeiJDfri0M,76
25
- snowflake/snowpark_connect/execute_plan/map_execution_command.py,sha256=Sm3xF9-pQJMmPQY97-BXxfV7oytY_aPLViBDOeE34nQ,10354
24
+ snowflake/snowpark_connect/execute_plan/map_execution_command.py,sha256=j3XjBAwqOHY3D2cwu7Ez2jSZq57UUbal-1ynwXnrOHM,9355
26
25
  snowflake/snowpark_connect/execute_plan/map_execution_root.py,sha256=wFxeSxtuQY1OmI_BRLOzudrGwkJsmbBUOFQfsxxvRrU,7461
27
26
  snowflake/snowpark_connect/execute_plan/utils.py,sha256=OsjEd-WnQEX2oNVvlzGR6rpJVYyfxx1LACP09k1Y4lk,7830
28
27
  snowflake/snowpark_connect/expression/__init__.py,sha256=xsIE96jDASko3F-MeNf4T4Gg5ufthS8CejeiJDfri0M,76
@@ -30,14 +29,14 @@ snowflake/snowpark_connect/expression/function_defaults.py,sha256=WEnzc_uzZZltcf
30
29
  snowflake/snowpark_connect/expression/hybrid_column_map.py,sha256=2jItaXnFnqcaOIiHKxscFLj7hi2zQE7F3xcher8Zo2U,7614
31
30
  snowflake/snowpark_connect/expression/literal.py,sha256=wk5NnLR85SLHe7GoAvSzMTW0B-3yhAiRz4F5SfU2REs,4459
32
31
  snowflake/snowpark_connect/expression/map_cast.py,sha256=uxNukg9op0i_sKLhY43fJJJ2-SKZ-8wkRMRBiPikJ0c,14799
33
- snowflake/snowpark_connect/expression/map_expression.py,sha256=Jj8boZ3rSypGM26_g5yL4DJ1z5L_p70_-E5XNriLZN0,14949
32
+ snowflake/snowpark_connect/expression/map_expression.py,sha256=04EZNHV7bb0KAIhbnmhIgssvafn3XTSE9Ax_uMishP8,15711
34
33
  snowflake/snowpark_connect/expression/map_extension.py,sha256=Qm1Jn3JunswD_hO7ornvKpR6WcM3UKO_JpZE6ovH3VM,4939
35
- snowflake/snowpark_connect/expression/map_sql_expression.py,sha256=bHl7_YrKnWy0k1gMz02HYF8lTZKoamQdv5nFCHEfbzI,25824
34
+ snowflake/snowpark_connect/expression/map_sql_expression.py,sha256=ultWVVcCeXHUlNSkq4PEdeFuezLDELcemFJVSIJczbE,25923
36
35
  snowflake/snowpark_connect/expression/map_udf.py,sha256=_om_Kqxm_sm3RhwP4DZbGPUpArX90MoJQm-KwEWrTiQ,8034
37
- snowflake/snowpark_connect/expression/map_unresolved_attribute.py,sha256=fnkCQF-Ts-Dw93AlwjzQdd9BAR5J4uldML8dZ3J_RMI,19576
36
+ snowflake/snowpark_connect/expression/map_unresolved_attribute.py,sha256=cyyEtAsPqcCpCYulAobSbtPDV3xkCIM0_tq4wdMxuJM,18843
38
37
  snowflake/snowpark_connect/expression/map_unresolved_extract_value.py,sha256=A-m-RczZW6xHMjgYR5RV_vzMTpNBRoH3Tk_A1V8z_pk,5382
39
- snowflake/snowpark_connect/expression/map_unresolved_function.py,sha256=ZnltrpyzLNn4eu0Eg7axYZVsixt9wTtA0JrAVSh9Ojw,477459
40
- snowflake/snowpark_connect/expression/map_unresolved_star.py,sha256=XNJurGS5RLAaIAcalGGBbPJujqg8YZru_RsoB61m0WQ,8865
38
+ snowflake/snowpark_connect/expression/map_unresolved_function.py,sha256=5Ne94Mip18iXmiqpBNO9wVkiDULGhjxD2wU4ueEsSXs,478168
39
+ snowflake/snowpark_connect/expression/map_unresolved_star.py,sha256=gecSxJ9flsn9chTXmYHP8nLzs_209xnVlyNwANDXRFg,8820
41
40
  snowflake/snowpark_connect/expression/map_update_fields.py,sha256=bMuZjCOE5wgrZv3ApsoiwEUv-lPgnMWUk-DFX11QuX0,6710
42
41
  snowflake/snowpark_connect/expression/map_window_function.py,sha256=apJxtWSnLogMG0F_En67JoGrGRGYQ0I8O0xPRk4TR_o,12152
43
42
  snowflake/snowpark_connect/expression/typer.py,sha256=aV2dmsqsJWhZzeJtu-_xLqVZ8REsU0hTYAEpCrbO5y8,4582
@@ -78,7 +77,7 @@ snowflake/snowpark_connect/includes/jars/log4j-core-2.20.0.jar,sha256=YTffhIza7Z
78
77
  snowflake/snowpark_connect/includes/jars/log4j-slf4j2-impl-2.20.0.jar,sha256=uN0-TqnP-hjbXzAc2MU5FYZi5pHv1HAaqHtNCZYb2LA,26430
79
78
  snowflake/snowpark_connect/includes/jars/paranamer-2.8.3.jar,sha256=qd8Tby6SazeoOKW04iJzQ8OnVdFXJLOoNQtK6ksViUU,37899
80
79
  snowflake/snowpark_connect/includes/jars/paranamer-2.8.jar,sha256=aIyxGKYCHYGROOhVIIyVYDFoi-S0eiS7YVvsxjrO3wc,34654
81
- snowflake/snowpark_connect/includes/jars/sas-scala-udf_2.12-0.1.0.jar,sha256=cl-jS8dYqWuqawLz8zybq2QTbS9Uuf46k8WEU_Cexdo,3242
80
+ snowflake/snowpark_connect/includes/jars/sas-scala-udf_2.12-0.1.0.jar,sha256=2flk7VxMgrNtLKNE6owH8QDS4pQMmWNvSajkjkdtdQA,6613712
82
81
  snowflake/snowpark_connect/includes/jars/scala-collection-compat_2.12-2.7.0.jar,sha256=-2iGSgJIrwl51Fkhhp6xIwtZJqph5cCoc3w_c65YLpI,247466
83
82
  snowflake/snowpark_connect/includes/jars/scala-library-2.12.18.jar,sha256=5R5mNsADNZ4Qa-pK2Z3vcOYTwpAZDIyE8Q-VYN1bAK4,5433857
84
83
  snowflake/snowpark_connect/includes/jars/scala-parser-combinators_2.12-2.3.0.jar,sha256=Fb8T9c4On_QiRgPEQoEmXQUJrDHqgjxGqimlpS4JpXQ,186777
@@ -401,15 +400,15 @@ snowflake/snowpark_connect/relation/map_aggregate.py,sha256=KElVYO62V3jkU8ldTCfT
401
400
  snowflake/snowpark_connect/relation/map_catalog.py,sha256=mcx6An4fqHAxy2OhOC66Xe_0aRtYPDGkBEgMK5CfaXU,5822
402
401
  snowflake/snowpark_connect/relation/map_column_ops.py,sha256=grleA0S6jyia6T5IGbPOEdz0zI0TkkV7jENzlfzoQlQ,49017
403
402
  snowflake/snowpark_connect/relation/map_crosstab.py,sha256=H_J8-IARK6zMEUFrOjKif1St6M20gvBAnP0EuArFHGg,2422
404
- snowflake/snowpark_connect/relation/map_extension.py,sha256=aZUKnOhpVUrgt8-hRbP7JdVfA453vg9YaWaVKQVEsC4,22271
405
- snowflake/snowpark_connect/relation/map_join.py,sha256=oINd7AMa_O0bLPqsFFeKnZfE0anKa2RAR9QYh3qdbbY,25042
403
+ snowflake/snowpark_connect/relation/map_extension.py,sha256=ItzB9AMG0OAwQhmO8bvIJxVToYhAyQu19pprone7feE,22473
404
+ snowflake/snowpark_connect/relation/map_join.py,sha256=YGOy6nmpb0mqw8D3TzsV4bDlvaq6QFYPwfF5S6YgydU,15201
406
405
  snowflake/snowpark_connect/relation/map_local_relation.py,sha256=VBfwBT75GQUe01UOZptwcYsI7zZxaIMQyTOG6kmVuJ0,15219
407
406
  snowflake/snowpark_connect/relation/map_map_partitions.py,sha256=JGiPnqmFFNdHAx54dHyOUwo9JZzyggDd1yLBmu-hasQ,4307
408
- snowflake/snowpark_connect/relation/map_relation.py,sha256=LaISHm5KrLFb4VSgTT2n-9VL4LB21gaN9xl38qzZmT0,12541
407
+ snowflake/snowpark_connect/relation/map_relation.py,sha256=etQ_SGXAAXNZxqfG6ouh6XVMSbvVLo2NS2Hhj3vOAas,12806
409
408
  snowflake/snowpark_connect/relation/map_row_ops.py,sha256=x1Jqircy4I0iiSljx3zbq0YxwGvGzPcXIY8_nhtl2PM,30528
410
409
  snowflake/snowpark_connect/relation/map_sample_by.py,sha256=8ALQbeUsB89sI3uiUFqG3w1A4TtOzOAL4umdKp6-c38,1530
411
410
  snowflake/snowpark_connect/relation/map_show_string.py,sha256=GgKg0qp1pGqSC7TuFedTU4IYaIm-Fx23OJ1LfkcGOHw,3382
412
- snowflake/snowpark_connect/relation/map_sql.py,sha256=BcgZMiyxDzy5cH8in_-O7819b3qGGaDxYNl0C_6Eqec,86496
411
+ snowflake/snowpark_connect/relation/map_sql.py,sha256=7LeobApI0Pfvb1D2rSJYFMjyD6PMJ8Ig4Frcxv_k0Bc,104069
413
412
  snowflake/snowpark_connect/relation/map_stats.py,sha256=kqRYvix8RfluTKx1cAy9JhBUv6arYQHgfxpP1R4QwBM,13985
414
413
  snowflake/snowpark_connect/relation/map_subquery_alias.py,sha256=rHgE9XUzuWWkjNPtJz3Sxzz2aFo690paHKZh9frqPXk,1456
415
414
  snowflake/snowpark_connect/relation/map_udtf.py,sha256=cfDnbZ3TRJ6eb0EVResu6GL-OwQpaEabWLbrhgWnkRw,13316
@@ -417,7 +416,7 @@ snowflake/snowpark_connect/relation/stage_locator.py,sha256=c30Z4N_xFavaL5XhIl9s
417
416
  snowflake/snowpark_connect/relation/utils.py,sha256=AhE58g0Zz2DWY9gW4JnB_iBU-r4RMnWCj4okQdHSz_4,8398
418
417
  snowflake/snowpark_connect/relation/catalogs/__init__.py,sha256=0yJ5Nfg7SIxudI0P7_U5EWPyiTpkMet8tSq-IwutSZo,265
419
418
  snowflake/snowpark_connect/relation/catalogs/abstract_spark_catalog.py,sha256=wujeuKotJZRzpPp_WqVB9TkfprFU2tIXTQJk_eFOR0o,9826
420
- snowflake/snowpark_connect/relation/catalogs/snowflake_catalog.py,sha256=bsE4XSYd0AjMTAQh8M6NIiOidlCylcQOaIFjGm0EkRw,21802
419
+ snowflake/snowpark_connect/relation/catalogs/snowflake_catalog.py,sha256=e9rXL0DOAf4VBZfa-idqehLAEZoCgIoE4IDiLVvR4dQ,28475
421
420
  snowflake/snowpark_connect/relation/catalogs/utils.py,sha256=AgiBkK9Xwm9ZyjsKZYK9eTb4YZ9C5dAimD9DLlft-tY,1753
422
421
  snowflake/snowpark_connect/relation/read/__init__.py,sha256=5J3IOTKu4Qmenouz1Oz_bUu_4c6KpxtaC63mPUGLyeY,132
423
422
  snowflake/snowpark_connect/relation/read/jdbc_read_dbapi.py,sha256=nwvBYwdDTRQc8ljt4CLLaVl5M2uei1TDICJkz7CDSG8,24608
@@ -427,37 +426,38 @@ snowflake/snowpark_connect/relation/read/map_read_jdbc.py,sha256=rfuf2Gp89v-9YFh
427
426
  snowflake/snowpark_connect/relation/read/map_read_json.py,sha256=z6xdXNCFOfRbZ-6J4QQ2wB7ad6vEm8S1H7T3Xx5CBck,12371
428
427
  snowflake/snowpark_connect/relation/read/map_read_parquet.py,sha256=VIUR5GWP6DBaYCDUsrDJzHQOM3y4hIbtWiCx0f4mczs,7168
429
428
  snowflake/snowpark_connect/relation/read/map_read_socket.py,sha256=yg7aO7jXMOyLQ9k3-abywNN2VAgvtvix2V8LsR_XQO4,2267
430
- snowflake/snowpark_connect/relation/read/map_read_table.py,sha256=gdUgdXVNKugLFHec2guP0eRd4Lu-XUOujLvyCKvrr7w,4354
429
+ snowflake/snowpark_connect/relation/read/map_read_table.py,sha256=mlbC4mbsV4_mHxYpxkOJ8nr8aNwEh2xBzfzC07XXaCQ,6607
431
430
  snowflake/snowpark_connect/relation/read/map_read_text.py,sha256=Vcm6EY3gyRPucdAXcXcu2mREcgq4N_4h3NDKNPhqsHY,3434
432
431
  snowflake/snowpark_connect/relation/read/reader_config.py,sha256=PMh1R5IjqqTwiAAqvDRhnTx8Jxnhq8wVCmpZRqqKD3E,16437
433
432
  snowflake/snowpark_connect/relation/read/utils.py,sha256=rIIM6d2WXHh7MLGyHNiRc9tS8b0dmyFQr7rHepIYJOU,4111
434
433
  snowflake/snowpark_connect/relation/write/__init__.py,sha256=xsIE96jDASko3F-MeNf4T4Gg5ufthS8CejeiJDfri0M,76
435
434
  snowflake/snowpark_connect/relation/write/jdbc_write_dbapi.py,sha256=GI9FyGZuQQNV-6Q8Ob-Xr0im3iAPdH-Jkyx8bjwbOuE,11931
436
- snowflake/snowpark_connect/relation/write/map_write.py,sha256=02e5JkrS6yr8KYGyGehsSfLZLCNDJHUg8tAVkCUAEgk,40376
435
+ snowflake/snowpark_connect/relation/write/map_write.py,sha256=swxSLYq4P1B3Yj7Spruw-vaBE1z-Q-er4iScuPqVyxc,45606
437
436
  snowflake/snowpark_connect/relation/write/map_write_jdbc.py,sha256=1nOWRgjtZzfRwnSRGFP9V6mqBVlGhSBr2KHGHbe4JMU,1404
438
437
  snowflake/snowpark_connect/resources/java_udfs-1.0-SNAPSHOT.jar,sha256=tVyOp6tXxu9nm6SDufwQiGzfH3pnuh_7PowsMZxOolY,9773
439
438
  snowflake/snowpark_connect/utils/__init__.py,sha256=xsIE96jDASko3F-MeNf4T4Gg5ufthS8CejeiJDfri0M,76
440
439
  snowflake/snowpark_connect/utils/artifacts.py,sha256=TkHZ2uNfZiphgtG91V1_c_h9yP9dP677BXUMymboCss,2498
441
440
  snowflake/snowpark_connect/utils/cache.py,sha256=bAyoNBW6Z1ui9BuppDywbQeG6fdju4L-owFHzySOTnk,3382
442
- snowflake/snowpark_connect/utils/concurrent.py,sha256=2UrQfJPWFrtpx131514t-9aXFDphbGI3N2pumLrltNk,3543
443
- snowflake/snowpark_connect/utils/context.py,sha256=W9j9eC-lbGp7tfXWhnvI88CVOcLGspYEhEgxGPYVbYE,13288
444
- snowflake/snowpark_connect/utils/describe_query_cache.py,sha256=2VcPgGP9bUpdIhnN2s_MOG8oGHKX0hS0rT7Y26MJb3A,9001
441
+ snowflake/snowpark_connect/utils/concurrent.py,sha256=BTbUmvupLzUSRd6L7kKk9yIXFdqlDOkXebVMaECRD-A,3653
442
+ snowflake/snowpark_connect/utils/context.py,sha256=yJ0pun5I69xu3__s39XX5LdQjqIEezFCgo1A-FhiWJ8,13829
443
+ snowflake/snowpark_connect/utils/describe_query_cache.py,sha256=HByBsP-XJ1PAk414OQtwIqcFnqpC2zq-ZK_YxR4O5gg,9100
445
444
  snowflake/snowpark_connect/utils/env_utils.py,sha256=g__Uio5ae20Tm1evahIHdJUXQYPmjNUT_kYPSIy5JDU,1488
446
445
  snowflake/snowpark_connect/utils/external_udxf_cache.py,sha256=eSZHMbjTxnkg78IlbG5P1Vno6j5ag_FSI0c4Xi2UyPs,1044
447
- snowflake/snowpark_connect/utils/identifiers.py,sha256=YgtVIQGuUnnTiNdtRficdBwUICWaWkJltjOPnTnfrak,3881
446
+ snowflake/snowpark_connect/utils/identifiers.py,sha256=yHsOklj6SM2re5auhSSMLPSvCYhpR8Cgy-Kgevf8gDc,7810
448
447
  snowflake/snowpark_connect/utils/interrupt.py,sha256=_awhdrzF1KQO-EQThneEcfMg3Zxed4p3HtMpkcAb6ek,2790
449
- snowflake/snowpark_connect/utils/io_utils.py,sha256=noBlKpJvzEA6iwLjFgBVGlCLlzjZ16-w0fsGimTyBAQ,1039
448
+ snowflake/snowpark_connect/utils/io_utils.py,sha256=xu0AMrHy-qsY7TfdIxzWChf0hU_7bnvm3Ruk0XScRns,1781
450
449
  snowflake/snowpark_connect/utils/pandas_udtf_utils.py,sha256=3WA_9IVRZL8fnwIHo048LTg62-bPGfCDUZzYd-zjzQQ,7564
451
450
  snowflake/snowpark_connect/utils/profiling.py,sha256=ttdHzQUYarvTqJASLNuKFIax7ejO39Tv1mHKl0QjRkg,1519
452
- snowflake/snowpark_connect/utils/scala_udf_utils.py,sha256=YDHmhqsjgBeuKdv1TaInEUUOvrnbrU3_toQY_MfEygk,22895
453
- snowflake/snowpark_connect/utils/session.py,sha256=dxt5VoqsQqBZd3OaEpoPfA0U-uNFWDP-HWtrcoey7_w,7770
451
+ snowflake/snowpark_connect/utils/scala_udf_utils.py,sha256=RFDDMmgQ_xBWk98kdfWaw4Hla3ZqYf3UAijU4uAUNdA,23011
452
+ snowflake/snowpark_connect/utils/session.py,sha256=BWwpIbhdplQOhvY4GpbLgZ-BrJLidrWR6A_cJmGFCq8,7372
454
453
  snowflake/snowpark_connect/utils/snowpark_connect_logging.py,sha256=23bvbALGqixJ3Ap9QWM3OpcKNK-sog2mr9liSmvwqYU,1123
455
- snowflake/snowpark_connect/utils/telemetry.py,sha256=BRDX1eRXcww2SAiBlVr2fQVR2I6gH50qSCFkOop_x4M,20736
454
+ snowflake/snowpark_connect/utils/telemetry.py,sha256=4TImrE4XY5rfiesHyPQQ0xtU63qnN1wUpDXUP12PAvA,22259
455
+ snowflake/snowpark_connect/utils/temporary_view_cache.py,sha256=M1czwb-uv0nP9w1meB72NR7cj0iryJc_OYFPztx5XuU,2080
456
456
  snowflake/snowpark_connect/utils/udf_cache.py,sha256=8K7kASEhvpnp-l1hjzovjyboUzKctDq7PiGXRcNv6Lg,12125
457
457
  snowflake/snowpark_connect/utils/udf_helper.py,sha256=g-TxTs4ARyJWYgADrosfQQG-ykBBQdm1g5opslxJq_E,12563
458
- snowflake/snowpark_connect/utils/udf_utils.py,sha256=pxERcJKum2M5jHxPqsl1NgHFAqZV4RxoEnSLxJV5ups,12009
458
+ snowflake/snowpark_connect/utils/udf_utils.py,sha256=aQX58P2f9WuJDAuoT5Ag5MNTZVxcx4NIZg_UJhcfW7k,12037
459
459
  snowflake/snowpark_connect/utils/udtf_helper.py,sha256=9B_1iOckfFXQfVv-UHerIJ32fDd4qucKaHGqxtBEi4w,14969
460
- snowflake/snowpark_connect/utils/udtf_utils.py,sha256=wHO5V0BXRQOLqAYos1vGt8bbdH7jBvD2gwspWywjTtY,33110
460
+ snowflake/snowpark_connect/utils/udtf_utils.py,sha256=7pYIOHUn7BLzQPqOqGaBOlV4fOnVIrWpd61quYuZ9PI,33134
461
461
  snowflake/snowpark_connect/utils/udxf_import_utils.py,sha256=pPtcaGsyh0tUdy0aAvNqTj04jqPKlEcGmvaZDP9O8Gc,536
462
462
  snowflake/snowpark_connect/utils/xxhash64.py,sha256=ysJRxhBPf25LeNhM1RK_H36MWl6q6C6vBRHa-jIna_A,7477
463
463
  snowflake/snowpark_decoder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -465,17 +465,17 @@ snowflake/snowpark_decoder/dp_session.py,sha256=HIr3TfKgYl5zqaGR5xpFU9ZVkcaTB9I8
465
465
  snowflake/snowpark_decoder/spark_decoder.py,sha256=EQiCvBiqB736Bc17o3gnYGtcYVcyfGxroO5e1kbe1Co,2885
466
466
  snowflake/snowpark_decoder/_internal/proto/generated/DataframeProcessorMsg_pb2.py,sha256=2eSDqeyfMvmIJ6_rF663DrEe1dg_anrP4OpVJNTJHaQ,2598
467
467
  snowflake/snowpark_decoder/_internal/proto/generated/DataframeProcessorMsg_pb2.pyi,sha256=aIH23k52bXdw5vO3RtM5UcOjDPaWsJFx1SRUSk3qOK8,6142
468
- snowpark_connect-0.27.0.data/scripts/snowpark-connect,sha256=yZ94KqbWACxnwV8mpg8NjILvvRNjnF8B3cs3ZFNuIM4,1546
469
- snowpark_connect-0.27.0.data/scripts/snowpark-session,sha256=NMAHSonTo-nmOZSkQNlszUC0jLJ8QWEDUsUmMe2UAOw,190
470
- snowpark_connect-0.27.0.data/scripts/snowpark-submit,sha256=Zd98H9W_d0dIqMSkQLdHyW5G3myxF0t4c3vNBt2nD6A,12056
471
- snowpark_connect-0.27.0.dist-info/licenses/LICENSE-binary,sha256=fmBlX39HwTlBUyiKEznaLZGuxQy-7ndLLG_rTXjF02Y,22916
472
- snowpark_connect-0.27.0.dist-info/licenses/LICENSE.txt,sha256=Ff9cPv4xu0z7bnMTHzo4vDncOShsy33w4oJMA2xjn6c,11365
473
- snowpark_connect-0.27.0.dist-info/licenses/NOTICE-binary,sha256=elMF8brgGNJwOz8YdorzBF6-U8ZhR8F-77FfGkZng7U,57843
468
+ snowpark_connect-0.28.1.data/scripts/snowpark-connect,sha256=yZ94KqbWACxnwV8mpg8NjILvvRNjnF8B3cs3ZFNuIM4,1546
469
+ snowpark_connect-0.28.1.data/scripts/snowpark-session,sha256=NMAHSonTo-nmOZSkQNlszUC0jLJ8QWEDUsUmMe2UAOw,190
470
+ snowpark_connect-0.28.1.data/scripts/snowpark-submit,sha256=Zd98H9W_d0dIqMSkQLdHyW5G3myxF0t4c3vNBt2nD6A,12056
471
+ snowpark_connect-0.28.1.dist-info/licenses/LICENSE-binary,sha256=fmBlX39HwTlBUyiKEznaLZGuxQy-7ndLLG_rTXjF02Y,22916
472
+ snowpark_connect-0.28.1.dist-info/licenses/LICENSE.txt,sha256=Ff9cPv4xu0z7bnMTHzo4vDncOShsy33w4oJMA2xjn6c,11365
473
+ snowpark_connect-0.28.1.dist-info/licenses/NOTICE-binary,sha256=elMF8brgGNJwOz8YdorzBF6-U8ZhR8F-77FfGkZng7U,57843
474
474
  spark/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
475
475
  spark/connect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
476
476
  spark/connect/envelope_pb2.py,sha256=7Gc6OUA3vaCuTCIKamb_Iiw7W9jPTcWNEv1im20eWHM,2726
477
477
  spark/connect/envelope_pb2.pyi,sha256=VXTJSPpcxzB_dWqVdvPY4KkPhJfh0WmkX7SNHWoLhx0,3358
478
- snowpark_connect-0.27.0.dist-info/METADATA,sha256=w6hmGXXIiI6a74FuRcX7WiRBQP2ZlTVA_oqU1Lp8P0k,1594
479
- snowpark_connect-0.27.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
480
- snowpark_connect-0.27.0.dist-info/top_level.txt,sha256=ExnWqVpoTHRG99fu_AxXZVOz8c-De7nNu0yFCGylM8I,16
481
- snowpark_connect-0.27.0.dist-info/RECORD,,
478
+ snowpark_connect-0.28.1.dist-info/METADATA,sha256=VYJ19DYnoBCToiaU__mf5hnm3hBrzN0bBv89QDVre8E,1594
479
+ snowpark_connect-0.28.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
480
+ snowpark_connect-0.28.1.dist-info/top_level.txt,sha256=ExnWqVpoTHRG99fu_AxXZVOz8c-De7nNu0yFCGylM8I,16
481
+ snowpark_connect-0.28.1.dist-info/RECORD,,
@@ -1,39 +0,0 @@
1
- #
2
- # Copyright (c) 2012-2025 Snowflake Computing Inc. All rights reserved.
3
- #
4
-
5
-
6
- class HiddenColumn:
7
- """
8
- Represents a hidden column in a Snowflake table.
9
-
10
- Hidden columns are not visible in standard queries but can be accessed
11
- directly if needed. This class provides a way to reference such columns
12
- in Snowpark operations
13
- """
14
-
15
- def __init__(
16
- self,
17
- hidden_snowpark_name: str,
18
- spark_name: str,
19
- visible_snowpark_name: str,
20
- qualifiers: list[str] | None = None,
21
- original_position: int | None = None,
22
- ) -> None:
23
- """
24
- Initializes a HiddenColumn instance.
25
-
26
- Args:
27
- name (str): The name of the hidden column.
28
- """
29
-
30
- # The Snowpark internal name for the hidden column
31
- self.hidden_snowpark_name = hidden_snowpark_name
32
- # The Spark name for the hidden column
33
- self.spark_name = spark_name
34
- # The left side visible Snowpark name for the dropped right side column
35
- self.visible_snowpark_name = visible_snowpark_name
36
- # Qualifiers for the hidden column (e.g., table or schema names)
37
- self.qualifiers = qualifiers if qualifiers is not None else []
38
- # The position of the hidden column in the original schema
39
- self.original_position = original_position