snowpark-connect 0.20.2__py3-none-any.whl → 0.22.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 (84) hide show
  1. snowflake/snowpark_connect/analyze_plan/map_tree_string.py +3 -2
  2. snowflake/snowpark_connect/column_name_handler.py +6 -65
  3. snowflake/snowpark_connect/config.py +47 -17
  4. snowflake/snowpark_connect/dataframe_container.py +242 -0
  5. snowflake/snowpark_connect/error/error_utils.py +25 -0
  6. snowflake/snowpark_connect/execute_plan/map_execution_command.py +13 -23
  7. snowflake/snowpark_connect/execute_plan/map_execution_root.py +9 -5
  8. snowflake/snowpark_connect/expression/map_extension.py +2 -1
  9. snowflake/snowpark_connect/expression/map_udf.py +4 -4
  10. snowflake/snowpark_connect/expression/map_unresolved_attribute.py +8 -7
  11. snowflake/snowpark_connect/expression/map_unresolved_function.py +481 -170
  12. snowflake/snowpark_connect/expression/map_unresolved_star.py +8 -8
  13. snowflake/snowpark_connect/expression/map_update_fields.py +1 -1
  14. snowflake/snowpark_connect/expression/typer.py +6 -6
  15. snowflake/snowpark_connect/proto/control_pb2.py +17 -16
  16. snowflake/snowpark_connect/proto/control_pb2.pyi +17 -17
  17. snowflake/snowpark_connect/proto/control_pb2_grpc.py +12 -63
  18. snowflake/snowpark_connect/proto/snowflake_expression_ext_pb2.py +15 -14
  19. snowflake/snowpark_connect/proto/snowflake_expression_ext_pb2.pyi +19 -14
  20. snowflake/snowpark_connect/proto/snowflake_expression_ext_pb2_grpc.py +4 -0
  21. snowflake/snowpark_connect/proto/snowflake_relation_ext_pb2.py +27 -26
  22. snowflake/snowpark_connect/proto/snowflake_relation_ext_pb2.pyi +74 -68
  23. snowflake/snowpark_connect/proto/snowflake_relation_ext_pb2_grpc.py +4 -0
  24. snowflake/snowpark_connect/relation/catalogs/abstract_spark_catalog.py +5 -5
  25. snowflake/snowpark_connect/relation/catalogs/snowflake_catalog.py +25 -17
  26. snowflake/snowpark_connect/relation/map_aggregate.py +170 -61
  27. snowflake/snowpark_connect/relation/map_catalog.py +2 -2
  28. snowflake/snowpark_connect/relation/map_column_ops.py +227 -145
  29. snowflake/snowpark_connect/relation/map_crosstab.py +25 -6
  30. snowflake/snowpark_connect/relation/map_extension.py +81 -56
  31. snowflake/snowpark_connect/relation/map_join.py +72 -63
  32. snowflake/snowpark_connect/relation/map_local_relation.py +35 -20
  33. snowflake/snowpark_connect/relation/map_map_partitions.py +24 -17
  34. snowflake/snowpark_connect/relation/map_relation.py +22 -16
  35. snowflake/snowpark_connect/relation/map_row_ops.py +232 -146
  36. snowflake/snowpark_connect/relation/map_sample_by.py +15 -8
  37. snowflake/snowpark_connect/relation/map_show_string.py +42 -5
  38. snowflake/snowpark_connect/relation/map_sql.py +141 -237
  39. snowflake/snowpark_connect/relation/map_stats.py +88 -39
  40. snowflake/snowpark_connect/relation/map_subquery_alias.py +13 -14
  41. snowflake/snowpark_connect/relation/map_udtf.py +10 -13
  42. snowflake/snowpark_connect/relation/read/map_read.py +8 -3
  43. snowflake/snowpark_connect/relation/read/map_read_csv.py +7 -7
  44. snowflake/snowpark_connect/relation/read/map_read_jdbc.py +7 -7
  45. snowflake/snowpark_connect/relation/read/map_read_json.py +19 -8
  46. snowflake/snowpark_connect/relation/read/map_read_parquet.py +7 -7
  47. snowflake/snowpark_connect/relation/read/map_read_socket.py +7 -3
  48. snowflake/snowpark_connect/relation/read/map_read_table.py +25 -16
  49. snowflake/snowpark_connect/relation/read/map_read_text.py +7 -7
  50. snowflake/snowpark_connect/relation/read/reader_config.py +1 -0
  51. snowflake/snowpark_connect/relation/utils.py +11 -5
  52. snowflake/snowpark_connect/relation/write/jdbc_write_dbapi.py +15 -12
  53. snowflake/snowpark_connect/relation/write/map_write.py +259 -56
  54. snowflake/snowpark_connect/relation/write/map_write_jdbc.py +3 -2
  55. snowflake/snowpark_connect/server.py +43 -4
  56. snowflake/snowpark_connect/type_mapping.py +6 -23
  57. snowflake/snowpark_connect/utils/cache.py +27 -22
  58. snowflake/snowpark_connect/utils/context.py +33 -17
  59. snowflake/snowpark_connect/utils/describe_query_cache.py +2 -9
  60. snowflake/snowpark_connect/utils/{attribute_handling.py → identifiers.py} +47 -0
  61. snowflake/snowpark_connect/utils/session.py +41 -38
  62. snowflake/snowpark_connect/utils/telemetry.py +214 -63
  63. snowflake/snowpark_connect/utils/udxf_import_utils.py +14 -0
  64. snowflake/snowpark_connect/version.py +1 -1
  65. snowflake/snowpark_decoder/__init__.py +0 -0
  66. snowflake/snowpark_decoder/_internal/proto/generated/DataframeProcessorMsg_pb2.py +36 -0
  67. snowflake/snowpark_decoder/_internal/proto/generated/DataframeProcessorMsg_pb2.pyi +156 -0
  68. snowflake/snowpark_decoder/dp_session.py +111 -0
  69. snowflake/snowpark_decoder/spark_decoder.py +76 -0
  70. {snowpark_connect-0.20.2.dist-info → snowpark_connect-0.22.1.dist-info}/METADATA +6 -4
  71. {snowpark_connect-0.20.2.dist-info → snowpark_connect-0.22.1.dist-info}/RECORD +83 -69
  72. snowpark_connect-0.22.1.dist-info/licenses/LICENSE-binary +568 -0
  73. snowpark_connect-0.22.1.dist-info/licenses/NOTICE-binary +1533 -0
  74. {snowpark_connect-0.20.2.dist-info → snowpark_connect-0.22.1.dist-info}/top_level.txt +1 -0
  75. spark/__init__.py +0 -0
  76. spark/connect/__init__.py +0 -0
  77. spark/connect/envelope_pb2.py +31 -0
  78. spark/connect/envelope_pb2.pyi +46 -0
  79. snowflake/snowpark_connect/includes/jars/jackson-mapper-asl-1.9.13.jar +0 -0
  80. {snowpark_connect-0.20.2.data → snowpark_connect-0.22.1.data}/scripts/snowpark-connect +0 -0
  81. {snowpark_connect-0.20.2.data → snowpark_connect-0.22.1.data}/scripts/snowpark-session +0 -0
  82. {snowpark_connect-0.20.2.data → snowpark_connect-0.22.1.data}/scripts/snowpark-submit +0 -0
  83. {snowpark_connect-0.20.2.dist-info → snowpark_connect-0.22.1.dist-info}/WHEEL +0 -0
  84. {snowpark_connect-0.20.2.dist-info → snowpark_connect-0.22.1.dist-info}/licenses/LICENSE.txt +0 -0
@@ -13,10 +13,10 @@ from snowflake.snowpark.types import StructType
13
13
  from snowflake.snowpark_connect.column_name_handler import ColumnNameMap
14
14
  from snowflake.snowpark_connect.expression.typer import ExpressionTyper
15
15
  from snowflake.snowpark_connect.typed_column import TypedColumn
16
- from snowflake.snowpark_connect.utils.attribute_handling import (
16
+ from snowflake.snowpark_connect.utils.context import get_outer_dataframes
17
+ from snowflake.snowpark_connect.utils.identifiers import (
17
18
  split_fully_qualified_spark_name,
18
19
  )
19
- from snowflake.snowpark_connect.utils.context import get_outer_dataframes
20
20
 
21
21
 
22
22
  def check_struct_and_get_field_datatype(field_name, schema):
@@ -66,8 +66,8 @@ def map_unresolved_star(
66
66
  )
67
67
 
68
68
  if len(spark_names) == 0:
69
- for outer_df in get_outer_dataframes():
70
- column_mapping_for_outer_df = outer_df._column_map
69
+ for outer_df_container in get_outer_dataframes():
70
+ column_mapping_for_outer_df = outer_df_container.column_map
71
71
  (
72
72
  spark_names,
73
73
  snowpark_names,
@@ -106,8 +106,8 @@ def map_unresolved_star(
106
106
  )
107
107
  )
108
108
  if prefix_candidate is None:
109
- for outer_df in get_outer_dataframes():
110
- prefix_candidate = outer_df._column_map.get_snowpark_column_name_from_spark_column_name(
109
+ for outer_df_container in get_outer_dataframes():
110
+ prefix_candidate = outer_df_container.column_map.get_snowpark_column_name_from_spark_column_name(
111
111
  prefix_candidate_str, allow_non_exists=True
112
112
  )
113
113
  if prefix_candidate is not None:
@@ -184,8 +184,8 @@ def map_unresolved_star_struct(
184
184
  )
185
185
  )
186
186
  if prefix_candidate is None:
187
- for outer_df in get_outer_dataframes():
188
- prefix_candidate = outer_df._column_map.get_snowpark_column_name_from_spark_column_name(
187
+ for outer_df_container in get_outer_dataframes():
188
+ prefix_candidate = outer_df_container.column_map.get_snowpark_column_name_from_spark_column_name(
189
189
  prefix_candidate_str, allow_non_exists=True
190
190
  )
191
191
  if prefix_candidate is not None:
@@ -10,7 +10,7 @@ from snowflake.snowpark.types import DataType, StringType, StructField, StructTy
10
10
  from snowflake.snowpark_connect.column_name_handler import ColumnNameMap
11
11
  from snowflake.snowpark_connect.expression.typer import ExpressionTyper
12
12
  from snowflake.snowpark_connect.typed_column import TypedColumn
13
- from snowflake.snowpark_connect.utils.attribute_handling import (
13
+ from snowflake.snowpark_connect.utils.identifiers import (
14
14
  split_fully_qualified_spark_name,
15
15
  )
16
16
 
@@ -29,7 +29,7 @@ class ExpressionTyper:
29
29
  types = self._try_to_type_attribute_or_literal(self.df, column)
30
30
  if not types and get_df_before_projection():
31
31
  types = self._try_to_type_attribute_or_literal(
32
- get_df_before_projection(), column
32
+ get_df_before_projection().dataframe, column
33
33
  )
34
34
  if not types:
35
35
  # df.select().schema results in DESCRIBE call to Snowflake, so avoid it if possible
@@ -42,17 +42,17 @@ class ExpressionTyper:
42
42
  try:
43
43
  return self._get_df_datatypes(df, column)
44
44
  except SnowparkClientException: # Fallback to the df before projection
45
- df = get_df_before_projection()
46
- if df is None:
45
+ df_container = get_df_before_projection()
46
+ if df_container is None:
47
47
  raise
48
48
 
49
- df = self._join_df_with_outer_dataframes(df)
49
+ df = self._join_df_with_outer_dataframes(df_container.dataframe)
50
50
  return self._get_df_datatypes(df, column)
51
51
 
52
52
  @staticmethod
53
53
  def _join_df_with_outer_dataframes(df: DataFrame) -> DataFrame:
54
- for outer_df in get_outer_dataframes():
55
- df = df.join(outer_df)
54
+ for outer_df_container in get_outer_dataframes():
55
+ df = df.join(outer_df_container.dataframe)
56
56
 
57
57
  return df
58
58
 
@@ -1,11 +1,12 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # source: control.proto
4
+ # Protobuf Python Version: 4.25.1
4
5
  """Generated protocol buffer code."""
5
- from google.protobuf.internal import builder as _builder
6
6
  from google.protobuf import descriptor as _descriptor
7
7
  from google.protobuf import descriptor_pool as _descriptor_pool
8
8
  from google.protobuf import symbol_database as _symbol_database
9
+ from google.protobuf.internal import builder as _builder
9
10
  # @@protoc_insertion_point(imports)
10
11
 
11
12
  _sym_db = _symbol_database.Default()
@@ -15,21 +16,21 @@ _sym_db = _symbol_database.Default()
15
16
 
16
17
  DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rcontrol.proto\x12\rsnowflake.ses\"*\n\x06\x43onfig\x12\x14\n\x07log_ast\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\n\n\x08_log_ast\"\x1e\n\x0bPingRequest\x12\x0f\n\x07payload\x18\x01 \x01(\t\"\x1f\n\x0cPingResponse\x12\x0f\n\x07payload\x18\x01 \x01(\t\"+\n\x14GetRequestAstRequest\x12\x13\n\x0b\x66orce_flush\x18\x01 \x01(\x08\"M\n\x15GetRequestAstResponse\x12\x16\n\x0espark_requests\x18\x01 \x03(\x0c\x12\x1c\n\x14snowpark_ast_batches\x18\x02 \x03(\t2\xe8\x01\n\x0e\x43ontrolService\x12\x39\n\tConfigure\x12\x15.snowflake.ses.Config\x1a\x15.snowflake.ses.Config\x12?\n\x04Ping\x12\x1a.snowflake.ses.PingRequest\x1a\x1b.snowflake.ses.PingResponse\x12Z\n\rGetRequestAst\x12#.snowflake.ses.GetRequestAstRequest\x1a$.snowflake.ses.GetRequestAstResponseb\x06proto3')
17
18
 
18
- _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
19
- _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'control_pb2', globals())
19
+ _globals = globals()
20
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
21
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'control_pb2', _globals)
20
22
  if _descriptor._USE_C_DESCRIPTORS == False:
21
-
22
23
  DESCRIPTOR._options = None
23
- _CONFIG._serialized_start=32
24
- _CONFIG._serialized_end=74
25
- _PINGREQUEST._serialized_start=76
26
- _PINGREQUEST._serialized_end=106
27
- _PINGRESPONSE._serialized_start=108
28
- _PINGRESPONSE._serialized_end=139
29
- _GETREQUESTASTREQUEST._serialized_start=141
30
- _GETREQUESTASTREQUEST._serialized_end=184
31
- _GETREQUESTASTRESPONSE._serialized_start=186
32
- _GETREQUESTASTRESPONSE._serialized_end=263
33
- _CONTROLSERVICE._serialized_start=266
34
- _CONTROLSERVICE._serialized_end=498
24
+ _globals['_CONFIG']._serialized_start=32
25
+ _globals['_CONFIG']._serialized_end=74
26
+ _globals['_PINGREQUEST']._serialized_start=76
27
+ _globals['_PINGREQUEST']._serialized_end=106
28
+ _globals['_PINGRESPONSE']._serialized_start=108
29
+ _globals['_PINGRESPONSE']._serialized_end=139
30
+ _globals['_GETREQUESTASTREQUEST']._serialized_start=141
31
+ _globals['_GETREQUESTASTREQUEST']._serialized_end=184
32
+ _globals['_GETREQUESTASTRESPONSE']._serialized_start=186
33
+ _globals['_GETREQUESTASTRESPONSE']._serialized_end=263
34
+ _globals['_CONTROLSERVICE']._serialized_start=266
35
+ _globals['_CONTROLSERVICE']._serialized_end=498
35
36
  # @@protoc_insertion_point(module_scope)
@@ -6,33 +6,33 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Optional as _Op
6
6
  DESCRIPTOR: _descriptor.FileDescriptor
7
7
 
8
8
  class Config(_message.Message):
9
- __slots__ = ["log_ast"]
9
+ __slots__ = ("log_ast",)
10
10
  LOG_AST_FIELD_NUMBER: _ClassVar[int]
11
11
  log_ast: bool
12
12
  def __init__(self, log_ast: bool = ...) -> None: ...
13
13
 
14
- class GetRequestAstRequest(_message.Message):
15
- __slots__ = ["force_flush"]
16
- FORCE_FLUSH_FIELD_NUMBER: _ClassVar[int]
17
- force_flush: bool
18
- def __init__(self, force_flush: bool = ...) -> None: ...
19
-
20
- class GetRequestAstResponse(_message.Message):
21
- __slots__ = ["snowpark_ast_batches", "spark_requests"]
22
- SNOWPARK_AST_BATCHES_FIELD_NUMBER: _ClassVar[int]
23
- SPARK_REQUESTS_FIELD_NUMBER: _ClassVar[int]
24
- snowpark_ast_batches: _containers.RepeatedScalarFieldContainer[str]
25
- spark_requests: _containers.RepeatedScalarFieldContainer[bytes]
26
- def __init__(self, spark_requests: _Optional[_Iterable[bytes]] = ..., snowpark_ast_batches: _Optional[_Iterable[str]] = ...) -> None: ...
27
-
28
14
  class PingRequest(_message.Message):
29
- __slots__ = ["payload"]
15
+ __slots__ = ("payload",)
30
16
  PAYLOAD_FIELD_NUMBER: _ClassVar[int]
31
17
  payload: str
32
18
  def __init__(self, payload: _Optional[str] = ...) -> None: ...
33
19
 
34
20
  class PingResponse(_message.Message):
35
- __slots__ = ["payload"]
21
+ __slots__ = ("payload",)
36
22
  PAYLOAD_FIELD_NUMBER: _ClassVar[int]
37
23
  payload: str
38
24
  def __init__(self, payload: _Optional[str] = ...) -> None: ...
25
+
26
+ class GetRequestAstRequest(_message.Message):
27
+ __slots__ = ("force_flush",)
28
+ FORCE_FLUSH_FIELD_NUMBER: _ClassVar[int]
29
+ force_flush: bool
30
+ def __init__(self, force_flush: bool = ...) -> None: ...
31
+
32
+ class GetRequestAstResponse(_message.Message):
33
+ __slots__ = ("spark_requests", "snowpark_ast_batches")
34
+ SPARK_REQUESTS_FIELD_NUMBER: _ClassVar[int]
35
+ SNOWPARK_AST_BATCHES_FIELD_NUMBER: _ClassVar[int]
36
+ spark_requests: _containers.RepeatedScalarFieldContainer[bytes]
37
+ snowpark_ast_batches: _containers.RepeatedScalarFieldContainer[str]
38
+ def __init__(self, spark_requests: _Optional[_Iterable[bytes]] = ..., snowpark_ast_batches: _Optional[_Iterable[str]] = ...) -> None: ...
@@ -1,29 +1,9 @@
1
1
  # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
2
  """Client and server classes corresponding to protobuf-defined services."""
3
3
  import grpc
4
- import warnings
5
4
 
6
5
  import control_pb2 as control__pb2
7
6
 
8
- GRPC_GENERATED_VERSION = '1.66.1'
9
- GRPC_VERSION = grpc.__version__
10
- _version_not_supported = False
11
-
12
- try:
13
- from grpc._utilities import first_version_is_lower
14
- _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
15
- except ImportError:
16
- _version_not_supported = True
17
-
18
- if _version_not_supported:
19
- raise RuntimeError(
20
- f'The grpc package installed is at version {GRPC_VERSION},'
21
- + f' but the generated code in control_pb2_grpc.py depends on'
22
- + f' grpcio>={GRPC_GENERATED_VERSION}.'
23
- + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
24
- + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
25
- )
26
-
27
7
 
28
8
  class ControlServiceStub(object):
29
9
  """Missing associated documentation comment in .proto file."""
@@ -38,17 +18,17 @@ class ControlServiceStub(object):
38
18
  '/snowflake.ses.ControlService/Configure',
39
19
  request_serializer=control__pb2.Config.SerializeToString,
40
20
  response_deserializer=control__pb2.Config.FromString,
41
- _registered_method=True)
21
+ )
42
22
  self.Ping = channel.unary_unary(
43
23
  '/snowflake.ses.ControlService/Ping',
44
24
  request_serializer=control__pb2.PingRequest.SerializeToString,
45
25
  response_deserializer=control__pb2.PingResponse.FromString,
46
- _registered_method=True)
26
+ )
47
27
  self.GetRequestAst = channel.unary_unary(
48
28
  '/snowflake.ses.ControlService/GetRequestAst',
49
29
  request_serializer=control__pb2.GetRequestAstRequest.SerializeToString,
50
30
  response_deserializer=control__pb2.GetRequestAstResponse.FromString,
51
- _registered_method=True)
31
+ )
52
32
 
53
33
 
54
34
  class ControlServiceServicer(object):
@@ -94,7 +74,6 @@ def add_ControlServiceServicer_to_server(servicer, server):
94
74
  generic_handler = grpc.method_handlers_generic_handler(
95
75
  'snowflake.ses.ControlService', rpc_method_handlers)
96
76
  server.add_generic_rpc_handlers((generic_handler,))
97
- server.add_registered_method_handlers('snowflake.ses.ControlService', rpc_method_handlers)
98
77
 
99
78
 
100
79
  # This class is part of an EXPERIMENTAL API.
@@ -112,21 +91,11 @@ class ControlService(object):
112
91
  wait_for_ready=None,
113
92
  timeout=None,
114
93
  metadata=None):
115
- return grpc.experimental.unary_unary(
116
- request,
117
- target,
118
- '/snowflake.ses.ControlService/Configure',
94
+ return grpc.experimental.unary_unary(request, target, '/snowflake.ses.ControlService/Configure',
119
95
  control__pb2.Config.SerializeToString,
120
96
  control__pb2.Config.FromString,
121
- options,
122
- channel_credentials,
123
- insecure,
124
- call_credentials,
125
- compression,
126
- wait_for_ready,
127
- timeout,
128
- metadata,
129
- _registered_method=True)
97
+ options, channel_credentials,
98
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
130
99
 
131
100
  @staticmethod
132
101
  def Ping(request,
@@ -139,21 +108,11 @@ class ControlService(object):
139
108
  wait_for_ready=None,
140
109
  timeout=None,
141
110
  metadata=None):
142
- return grpc.experimental.unary_unary(
143
- request,
144
- target,
145
- '/snowflake.ses.ControlService/Ping',
111
+ return grpc.experimental.unary_unary(request, target, '/snowflake.ses.ControlService/Ping',
146
112
  control__pb2.PingRequest.SerializeToString,
147
113
  control__pb2.PingResponse.FromString,
148
- options,
149
- channel_credentials,
150
- insecure,
151
- call_credentials,
152
- compression,
153
- wait_for_ready,
154
- timeout,
155
- metadata,
156
- _registered_method=True)
114
+ options, channel_credentials,
115
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
157
116
 
158
117
  @staticmethod
159
118
  def GetRequestAst(request,
@@ -166,18 +125,8 @@ class ControlService(object):
166
125
  wait_for_ready=None,
167
126
  timeout=None,
168
127
  metadata=None):
169
- return grpc.experimental.unary_unary(
170
- request,
171
- target,
172
- '/snowflake.ses.ControlService/GetRequestAst',
128
+ return grpc.experimental.unary_unary(request, target, '/snowflake.ses.ControlService/GetRequestAst',
173
129
  control__pb2.GetRequestAstRequest.SerializeToString,
174
130
  control__pb2.GetRequestAstResponse.FromString,
175
- options,
176
- channel_credentials,
177
- insecure,
178
- call_credentials,
179
- compression,
180
- wait_for_ready,
181
- timeout,
182
- metadata,
183
- _registered_method=True)
131
+ options, channel_credentials,
132
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
@@ -1,11 +1,12 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # source: snowflake_expression_ext.proto
4
+ # Protobuf Python Version: 4.25.1
4
5
  """Generated protocol buffer code."""
5
- from google.protobuf.internal import builder as _builder
6
6
  from google.protobuf import descriptor as _descriptor
7
7
  from google.protobuf import descriptor_pool as _descriptor_pool
8
8
  from google.protobuf import symbol_database as _symbol_database
9
+ from google.protobuf.internal import builder as _builder
9
10
  # @@protoc_insertion_point(imports)
10
11
 
11
12
  _sym_db = _symbol_database.Default()
@@ -17,19 +18,19 @@ from pyspark.sql.connect.proto import relations_pb2 as spark_dot_connect_dot_rel
17
18
 
18
19
  DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1esnowflake_expression_ext.proto\x12\rsnowflake.ext\x1a\x1fspark/connect/expressions.proto\x1a\x1dspark/connect/relations.proto\"\x98\x01\n\x0c\x45xpExtension\x12@\n\x0enamed_argument\x18\x01 \x01(\x0b\x32&.snowflake.ext.NamedArgumentExpressionH\x00\x12@\n\x13subquery_expression\x18\x02 \x01(\x0b\x32!.snowflake.ext.SubqueryExpressionH\x00\x42\x04\n\x02op\"P\n\x17NamedArgumentExpression\x12\x0b\n\x03key\x18\x01 \x01(\t\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.spark.connect.Expression\"\xf4\x04\n\x12SubqueryExpression\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x45\n\rsubquery_type\x18\x02 \x01(\x0e\x32..snowflake.ext.SubqueryExpression.SubqueryType\x12Q\n\x11table_arg_options\x18\x03 \x01(\x0b\x32\x31.snowflake.ext.SubqueryExpression.TableArgOptionsH\x00\x88\x01\x01\x12\x35\n\x12in_subquery_values\x18\x04 \x03(\x0b\x32\x19.spark.connect.Expression\x1a\xbb\x01\n\x0fTableArgOptions\x12\x31\n\x0epartition_spec\x18\x01 \x03(\x0b\x32\x19.spark.connect.Expression\x12\x37\n\norder_spec\x18\x02 \x03(\x0b\x32#.spark.connect.Expression.SortOrder\x12\"\n\x15with_single_partition\x18\x03 \x01(\x08H\x00\x88\x01\x01\x42\x18\n\x16_with_single_partition\"\x90\x01\n\x0cSubqueryType\x12\x19\n\x15SUBQUERY_TYPE_UNKNOWN\x10\x00\x12\x18\n\x14SUBQUERY_TYPE_SCALAR\x10\x01\x12\x18\n\x14SUBQUERY_TYPE_EXISTS\x10\x02\x12\x1b\n\x17SUBQUERY_TYPE_TABLE_ARG\x10\x03\x12\x14\n\x10SUBQUERY_TYPE_IN\x10\x04\x42\x14\n\x12_table_arg_optionsb\x06proto3')
19
20
 
20
- _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
21
- _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'snowflake_expression_ext_pb2', globals())
21
+ _globals = globals()
22
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
23
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'snowflake_expression_ext_pb2', _globals)
22
24
  if _descriptor._USE_C_DESCRIPTORS == False:
23
-
24
25
  DESCRIPTOR._options = None
25
- _EXPEXTENSION._serialized_start=114
26
- _EXPEXTENSION._serialized_end=266
27
- _NAMEDARGUMENTEXPRESSION._serialized_start=268
28
- _NAMEDARGUMENTEXPRESSION._serialized_end=348
29
- _SUBQUERYEXPRESSION._serialized_start=351
30
- _SUBQUERYEXPRESSION._serialized_end=979
31
- _SUBQUERYEXPRESSION_TABLEARGOPTIONS._serialized_start=623
32
- _SUBQUERYEXPRESSION_TABLEARGOPTIONS._serialized_end=810
33
- _SUBQUERYEXPRESSION_SUBQUERYTYPE._serialized_start=813
34
- _SUBQUERYEXPRESSION_SUBQUERYTYPE._serialized_end=957
26
+ _globals['_EXPEXTENSION']._serialized_start=114
27
+ _globals['_EXPEXTENSION']._serialized_end=266
28
+ _globals['_NAMEDARGUMENTEXPRESSION']._serialized_start=268
29
+ _globals['_NAMEDARGUMENTEXPRESSION']._serialized_end=348
30
+ _globals['_SUBQUERYEXPRESSION']._serialized_start=351
31
+ _globals['_SUBQUERYEXPRESSION']._serialized_end=979
32
+ _globals['_SUBQUERYEXPRESSION_TABLEARGOPTIONS']._serialized_start=623
33
+ _globals['_SUBQUERYEXPRESSION_TABLEARGOPTIONS']._serialized_end=810
34
+ _globals['_SUBQUERYEXPRESSION_SUBQUERYTYPE']._serialized_start=813
35
+ _globals['_SUBQUERYEXPRESSION_SUBQUERYTYPE']._serialized_end=957
35
36
  # @@protoc_insertion_point(module_scope)
@@ -9,7 +9,7 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map
9
9
  DESCRIPTOR: _descriptor.FileDescriptor
10
10
 
11
11
  class ExpExtension(_message.Message):
12
- __slots__ = ["named_argument", "subquery_expression"]
12
+ __slots__ = ("named_argument", "subquery_expression")
13
13
  NAMED_ARGUMENT_FIELD_NUMBER: _ClassVar[int]
14
14
  SUBQUERY_EXPRESSION_FIELD_NUMBER: _ClassVar[int]
15
15
  named_argument: NamedArgumentExpression
@@ -17,7 +17,7 @@ class ExpExtension(_message.Message):
17
17
  def __init__(self, named_argument: _Optional[_Union[NamedArgumentExpression, _Mapping]] = ..., subquery_expression: _Optional[_Union[SubqueryExpression, _Mapping]] = ...) -> None: ...
18
18
 
19
19
  class NamedArgumentExpression(_message.Message):
20
- __slots__ = ["key", "value"]
20
+ __slots__ = ("key", "value")
21
21
  KEY_FIELD_NUMBER: _ClassVar[int]
22
22
  VALUE_FIELD_NUMBER: _ClassVar[int]
23
23
  key: str
@@ -25,29 +25,34 @@ class NamedArgumentExpression(_message.Message):
25
25
  def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_expressions_pb2.Expression, _Mapping]] = ...) -> None: ...
26
26
 
27
27
  class SubqueryExpression(_message.Message):
28
- __slots__ = ["in_subquery_values", "input", "subquery_type", "table_arg_options"]
28
+ __slots__ = ("input", "subquery_type", "table_arg_options", "in_subquery_values")
29
29
  class SubqueryType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
30
- __slots__ = []
30
+ __slots__ = ()
31
+ SUBQUERY_TYPE_UNKNOWN: _ClassVar[SubqueryExpression.SubqueryType]
32
+ SUBQUERY_TYPE_SCALAR: _ClassVar[SubqueryExpression.SubqueryType]
33
+ SUBQUERY_TYPE_EXISTS: _ClassVar[SubqueryExpression.SubqueryType]
34
+ SUBQUERY_TYPE_TABLE_ARG: _ClassVar[SubqueryExpression.SubqueryType]
35
+ SUBQUERY_TYPE_IN: _ClassVar[SubqueryExpression.SubqueryType]
36
+ SUBQUERY_TYPE_UNKNOWN: SubqueryExpression.SubqueryType
37
+ SUBQUERY_TYPE_SCALAR: SubqueryExpression.SubqueryType
38
+ SUBQUERY_TYPE_EXISTS: SubqueryExpression.SubqueryType
39
+ SUBQUERY_TYPE_TABLE_ARG: SubqueryExpression.SubqueryType
40
+ SUBQUERY_TYPE_IN: SubqueryExpression.SubqueryType
31
41
  class TableArgOptions(_message.Message):
32
- __slots__ = ["order_spec", "partition_spec", "with_single_partition"]
33
- ORDER_SPEC_FIELD_NUMBER: _ClassVar[int]
42
+ __slots__ = ("partition_spec", "order_spec", "with_single_partition")
34
43
  PARTITION_SPEC_FIELD_NUMBER: _ClassVar[int]
44
+ ORDER_SPEC_FIELD_NUMBER: _ClassVar[int]
35
45
  WITH_SINGLE_PARTITION_FIELD_NUMBER: _ClassVar[int]
36
- order_spec: _containers.RepeatedCompositeFieldContainer[_expressions_pb2.Expression.SortOrder]
37
46
  partition_spec: _containers.RepeatedCompositeFieldContainer[_expressions_pb2.Expression]
47
+ order_spec: _containers.RepeatedCompositeFieldContainer[_expressions_pb2.Expression.SortOrder]
38
48
  with_single_partition: bool
39
49
  def __init__(self, partition_spec: _Optional[_Iterable[_Union[_expressions_pb2.Expression, _Mapping]]] = ..., order_spec: _Optional[_Iterable[_Union[_expressions_pb2.Expression.SortOrder, _Mapping]]] = ..., with_single_partition: bool = ...) -> None: ...
40
50
  INPUT_FIELD_NUMBER: _ClassVar[int]
41
- IN_SUBQUERY_VALUES_FIELD_NUMBER: _ClassVar[int]
42
- SUBQUERY_TYPE_EXISTS: SubqueryExpression.SubqueryType
43
51
  SUBQUERY_TYPE_FIELD_NUMBER: _ClassVar[int]
44
- SUBQUERY_TYPE_IN: SubqueryExpression.SubqueryType
45
- SUBQUERY_TYPE_SCALAR: SubqueryExpression.SubqueryType
46
- SUBQUERY_TYPE_TABLE_ARG: SubqueryExpression.SubqueryType
47
- SUBQUERY_TYPE_UNKNOWN: SubqueryExpression.SubqueryType
48
52
  TABLE_ARG_OPTIONS_FIELD_NUMBER: _ClassVar[int]
49
- in_subquery_values: _containers.RepeatedCompositeFieldContainer[_expressions_pb2.Expression]
53
+ IN_SUBQUERY_VALUES_FIELD_NUMBER: _ClassVar[int]
50
54
  input: _relations_pb2.Relation
51
55
  subquery_type: SubqueryExpression.SubqueryType
52
56
  table_arg_options: SubqueryExpression.TableArgOptions
57
+ in_subquery_values: _containers.RepeatedCompositeFieldContainer[_expressions_pb2.Expression]
53
58
  def __init__(self, input: _Optional[_Union[_relations_pb2.Relation, _Mapping]] = ..., subquery_type: _Optional[_Union[SubqueryExpression.SubqueryType, str]] = ..., table_arg_options: _Optional[_Union[SubqueryExpression.TableArgOptions, _Mapping]] = ..., in_subquery_values: _Optional[_Iterable[_Union[_expressions_pb2.Expression, _Mapping]]] = ...) -> None: ...
@@ -0,0 +1,4 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ """Client and server classes corresponding to protobuf-defined services."""
3
+ import grpc
4
+
@@ -1,11 +1,12 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # source: snowflake_relation_ext.proto
4
+ # Protobuf Python Version: 4.25.1
4
5
  """Generated protocol buffer code."""
5
- from google.protobuf.internal import builder as _builder
6
6
  from google.protobuf import descriptor as _descriptor
7
7
  from google.protobuf import descriptor_pool as _descriptor_pool
8
8
  from google.protobuf import symbol_database as _symbol_database
9
+ from google.protobuf.internal import builder as _builder
9
10
  # @@protoc_insertion_point(imports)
10
11
 
11
12
  _sym_db = _symbol_database.Default()
@@ -17,31 +18,31 @@ from pyspark.sql.connect.proto import expressions_pb2 as spark_dot_connect_dot_e
17
18
 
18
19
  DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1csnowflake_relation_ext.proto\x12\rsnowflake.ext\x1a\x1dspark/connect/relations.proto\x1a\x1fspark/connect/expressions.proto\"\xe3\x02\n\tExtension\x12(\n\x07rdd_map\x18\x01 \x01(\x0b\x32\x15.snowflake.ext.RddMapH\x00\x12.\n\nrdd_reduce\x18\x02 \x01(\x0b\x32\x18.snowflake.ext.RddReduceH\x00\x12G\n\x17subquery_column_aliases\x18\x03 \x01(\x0b\x32$.snowflake.ext.SubqueryColumnAliasesH\x00\x12\x32\n\x0clateral_join\x18\x04 \x01(\x0b\x32\x1a.snowflake.ext.LateralJoinH\x00\x12J\n\x19udtf_with_table_arguments\x18\x05 \x01(\x0b\x32%.snowflake.ext.UDTFWithTableArgumentsH\x00\x12-\n\taggregate\x18\x06 \x01(\x0b\x32\x18.snowflake.ext.AggregateH\x00\x42\x04\n\x02op\">\n\x06RddMap\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0c\n\x04\x66unc\x18\x02 \x01(\x0c\"A\n\tRddReduce\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0c\n\x04\x66unc\x18\x02 \x01(\x0c\"P\n\x15SubqueryColumnAliases\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0f\n\x07\x61liases\x18\x02 \x03(\t\"\\\n\x0bLateralJoin\x12%\n\x04left\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12&\n\x05right\x18\x02 \x01(\x0b\x32\x17.spark.connect.Relation\"\x98\x01\n\x16UDTFWithTableArguments\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12,\n\targuments\x18\x02 \x03(\x0b\x32\x19.spark.connect.Expression\x12\x39\n\x0ftable_arguments\x18\x03 \x03(\x0b\x32 .snowflake.ext.TableArgumentInfo\"`\n\x11TableArgumentInfo\x12/\n\x0etable_argument\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x1a\n\x12table_argument_idx\x18\x02 \x01(\x05\"\x92\x05\n\tAggregate\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x36\n\ngroup_type\x18\x02 \x01(\x0e\x32\".snowflake.ext.Aggregate.GroupType\x12\x37\n\x14grouping_expressions\x18\x03 \x03(\x0b\x32\x19.spark.connect.Expression\x12\x38\n\x15\x61ggregate_expressions\x18\x04 \x03(\x0b\x32\x19.spark.connect.Expression\x12-\n\x05pivot\x18\x05 \x01(\x0b\x32\x1e.snowflake.ext.Aggregate.Pivot\x12<\n\rgrouping_sets\x18\x06 \x03(\x0b\x32%.snowflake.ext.Aggregate.GroupingSets\x1a\x62\n\x05Pivot\x12&\n\x03\x63ol\x18\x01 \x01(\x0b\x32\x19.spark.connect.Expression\x12\x31\n\x06values\x18\x02 \x03(\x0b\x32!.spark.connect.Expression.Literal\x1a?\n\x0cGroupingSets\x12/\n\x0cgrouping_set\x18\x01 \x03(\x0b\x32\x19.spark.connect.Expression\"\x9f\x01\n\tGroupType\x12\x1a\n\x16GROUP_TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12GROUP_TYPE_GROUPBY\x10\x01\x12\x15\n\x11GROUP_TYPE_ROLLUP\x10\x02\x12\x13\n\x0fGROUP_TYPE_CUBE\x10\x03\x12\x14\n\x10GROUP_TYPE_PIVOT\x10\x04\x12\x1c\n\x18GROUP_TYPE_GROUPING_SETS\x10\x05\x62\x06proto3')
19
20
 
20
- _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
21
- _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'snowflake_relation_ext_pb2', globals())
21
+ _globals = globals()
22
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
23
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'snowflake_relation_ext_pb2', _globals)
22
24
  if _descriptor._USE_C_DESCRIPTORS == False:
23
-
24
25
  DESCRIPTOR._options = None
25
- _EXTENSION._serialized_start=112
26
- _EXTENSION._serialized_end=467
27
- _RDDMAP._serialized_start=469
28
- _RDDMAP._serialized_end=531
29
- _RDDREDUCE._serialized_start=533
30
- _RDDREDUCE._serialized_end=598
31
- _SUBQUERYCOLUMNALIASES._serialized_start=600
32
- _SUBQUERYCOLUMNALIASES._serialized_end=680
33
- _LATERALJOIN._serialized_start=682
34
- _LATERALJOIN._serialized_end=774
35
- _UDTFWITHTABLEARGUMENTS._serialized_start=777
36
- _UDTFWITHTABLEARGUMENTS._serialized_end=929
37
- _TABLEARGUMENTINFO._serialized_start=931
38
- _TABLEARGUMENTINFO._serialized_end=1027
39
- _AGGREGATE._serialized_start=1030
40
- _AGGREGATE._serialized_end=1688
41
- _AGGREGATE_PIVOT._serialized_start=1363
42
- _AGGREGATE_PIVOT._serialized_end=1461
43
- _AGGREGATE_GROUPINGSETS._serialized_start=1463
44
- _AGGREGATE_GROUPINGSETS._serialized_end=1526
45
- _AGGREGATE_GROUPTYPE._serialized_start=1529
46
- _AGGREGATE_GROUPTYPE._serialized_end=1688
26
+ _globals['_EXTENSION']._serialized_start=112
27
+ _globals['_EXTENSION']._serialized_end=467
28
+ _globals['_RDDMAP']._serialized_start=469
29
+ _globals['_RDDMAP']._serialized_end=531
30
+ _globals['_RDDREDUCE']._serialized_start=533
31
+ _globals['_RDDREDUCE']._serialized_end=598
32
+ _globals['_SUBQUERYCOLUMNALIASES']._serialized_start=600
33
+ _globals['_SUBQUERYCOLUMNALIASES']._serialized_end=680
34
+ _globals['_LATERALJOIN']._serialized_start=682
35
+ _globals['_LATERALJOIN']._serialized_end=774
36
+ _globals['_UDTFWITHTABLEARGUMENTS']._serialized_start=777
37
+ _globals['_UDTFWITHTABLEARGUMENTS']._serialized_end=929
38
+ _globals['_TABLEARGUMENTINFO']._serialized_start=931
39
+ _globals['_TABLEARGUMENTINFO']._serialized_end=1027
40
+ _globals['_AGGREGATE']._serialized_start=1030
41
+ _globals['_AGGREGATE']._serialized_end=1688
42
+ _globals['_AGGREGATE_PIVOT']._serialized_start=1363
43
+ _globals['_AGGREGATE_PIVOT']._serialized_end=1461
44
+ _globals['_AGGREGATE_GROUPINGSETS']._serialized_start=1463
45
+ _globals['_AGGREGATE_GROUPINGSETS']._serialized_end=1526
46
+ _globals['_AGGREGATE_GROUPTYPE']._serialized_start=1529
47
+ _globals['_AGGREGATE_GROUPTYPE']._serialized_end=1688
47
48
  # @@protoc_insertion_point(module_scope)