snowpark-connect 0.20.2__py3-none-any.whl → 0.21.0__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 (67) 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 +28 -14
  4. snowflake/snowpark_connect/dataframe_container.py +242 -0
  5. snowflake/snowpark_connect/execute_plan/map_execution_command.py +13 -23
  6. snowflake/snowpark_connect/execute_plan/map_execution_root.py +9 -5
  7. snowflake/snowpark_connect/expression/map_extension.py +2 -1
  8. snowflake/snowpark_connect/expression/map_unresolved_attribute.py +8 -7
  9. snowflake/snowpark_connect/expression/map_unresolved_function.py +279 -43
  10. snowflake/snowpark_connect/expression/map_unresolved_star.py +8 -8
  11. snowflake/snowpark_connect/expression/map_update_fields.py +1 -1
  12. snowflake/snowpark_connect/expression/typer.py +6 -6
  13. snowflake/snowpark_connect/proto/control_pb2.py +17 -16
  14. snowflake/snowpark_connect/proto/control_pb2.pyi +17 -17
  15. snowflake/snowpark_connect/proto/control_pb2_grpc.py +12 -63
  16. snowflake/snowpark_connect/proto/snowflake_expression_ext_pb2.py +15 -14
  17. snowflake/snowpark_connect/proto/snowflake_expression_ext_pb2.pyi +19 -14
  18. snowflake/snowpark_connect/proto/snowflake_relation_ext_pb2.py +27 -26
  19. snowflake/snowpark_connect/proto/snowflake_relation_ext_pb2.pyi +74 -68
  20. snowflake/snowpark_connect/relation/catalogs/abstract_spark_catalog.py +5 -5
  21. snowflake/snowpark_connect/relation/catalogs/snowflake_catalog.py +25 -17
  22. snowflake/snowpark_connect/relation/map_aggregate.py +72 -47
  23. snowflake/snowpark_connect/relation/map_catalog.py +2 -2
  24. snowflake/snowpark_connect/relation/map_column_ops.py +207 -144
  25. snowflake/snowpark_connect/relation/map_crosstab.py +25 -6
  26. snowflake/snowpark_connect/relation/map_extension.py +81 -56
  27. snowflake/snowpark_connect/relation/map_join.py +72 -63
  28. snowflake/snowpark_connect/relation/map_local_relation.py +35 -20
  29. snowflake/snowpark_connect/relation/map_map_partitions.py +21 -16
  30. snowflake/snowpark_connect/relation/map_relation.py +22 -16
  31. snowflake/snowpark_connect/relation/map_row_ops.py +232 -146
  32. snowflake/snowpark_connect/relation/map_sample_by.py +15 -8
  33. snowflake/snowpark_connect/relation/map_show_string.py +42 -5
  34. snowflake/snowpark_connect/relation/map_sql.py +155 -78
  35. snowflake/snowpark_connect/relation/map_stats.py +88 -39
  36. snowflake/snowpark_connect/relation/map_subquery_alias.py +13 -14
  37. snowflake/snowpark_connect/relation/map_udtf.py +6 -9
  38. snowflake/snowpark_connect/relation/read/map_read.py +8 -3
  39. snowflake/snowpark_connect/relation/read/map_read_csv.py +7 -7
  40. snowflake/snowpark_connect/relation/read/map_read_jdbc.py +7 -7
  41. snowflake/snowpark_connect/relation/read/map_read_json.py +7 -7
  42. snowflake/snowpark_connect/relation/read/map_read_parquet.py +7 -7
  43. snowflake/snowpark_connect/relation/read/map_read_socket.py +7 -3
  44. snowflake/snowpark_connect/relation/read/map_read_table.py +25 -16
  45. snowflake/snowpark_connect/relation/read/map_read_text.py +7 -7
  46. snowflake/snowpark_connect/relation/utils.py +11 -5
  47. snowflake/snowpark_connect/relation/write/jdbc_write_dbapi.py +15 -12
  48. snowflake/snowpark_connect/relation/write/map_write.py +199 -40
  49. snowflake/snowpark_connect/relation/write/map_write_jdbc.py +3 -2
  50. snowflake/snowpark_connect/server.py +34 -4
  51. snowflake/snowpark_connect/type_mapping.py +2 -23
  52. snowflake/snowpark_connect/utils/cache.py +27 -22
  53. snowflake/snowpark_connect/utils/context.py +33 -17
  54. snowflake/snowpark_connect/utils/{attribute_handling.py → identifiers.py} +47 -0
  55. snowflake/snowpark_connect/utils/session.py +41 -34
  56. snowflake/snowpark_connect/utils/telemetry.py +1 -2
  57. snowflake/snowpark_connect/version.py +1 -1
  58. {snowpark_connect-0.20.2.dist-info → snowpark_connect-0.21.0.dist-info}/METADATA +5 -3
  59. {snowpark_connect-0.20.2.dist-info → snowpark_connect-0.21.0.dist-info}/RECORD +67 -64
  60. snowpark_connect-0.21.0.dist-info/licenses/LICENSE-binary +568 -0
  61. snowpark_connect-0.21.0.dist-info/licenses/NOTICE-binary +1533 -0
  62. {snowpark_connect-0.20.2.data → snowpark_connect-0.21.0.data}/scripts/snowpark-connect +0 -0
  63. {snowpark_connect-0.20.2.data → snowpark_connect-0.21.0.data}/scripts/snowpark-session +0 -0
  64. {snowpark_connect-0.20.2.data → snowpark_connect-0.21.0.data}/scripts/snowpark-submit +0 -0
  65. {snowpark_connect-0.20.2.dist-info → snowpark_connect-0.21.0.dist-info}/WHEEL +0 -0
  66. {snowpark_connect-0.20.2.dist-info → snowpark_connect-0.21.0.dist-info}/licenses/LICENSE.txt +0 -0
  67. {snowpark_connect-0.20.2.dist-info → snowpark_connect-0.21.0.dist-info}/top_level.txt +0 -0
@@ -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: ...
@@ -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)
@@ -8,104 +8,110 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map
8
8
 
9
9
  DESCRIPTOR: _descriptor.FileDescriptor
10
10
 
11
- class Aggregate(_message.Message):
12
- __slots__ = ["aggregate_expressions", "group_type", "grouping_expressions", "grouping_sets", "input", "pivot"]
13
- class GroupType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
14
- __slots__ = []
15
- class GroupingSets(_message.Message):
16
- __slots__ = ["grouping_set"]
17
- GROUPING_SET_FIELD_NUMBER: _ClassVar[int]
18
- grouping_set: _containers.RepeatedCompositeFieldContainer[_expressions_pb2.Expression]
19
- def __init__(self, grouping_set: _Optional[_Iterable[_Union[_expressions_pb2.Expression, _Mapping]]] = ...) -> None: ...
20
- class Pivot(_message.Message):
21
- __slots__ = ["col", "values"]
22
- COL_FIELD_NUMBER: _ClassVar[int]
23
- VALUES_FIELD_NUMBER: _ClassVar[int]
24
- col: _expressions_pb2.Expression
25
- values: _containers.RepeatedCompositeFieldContainer[_expressions_pb2.Expression.Literal]
26
- def __init__(self, col: _Optional[_Union[_expressions_pb2.Expression, _Mapping]] = ..., values: _Optional[_Iterable[_Union[_expressions_pb2.Expression.Literal, _Mapping]]] = ...) -> None: ...
27
- AGGREGATE_EXPRESSIONS_FIELD_NUMBER: _ClassVar[int]
28
- GROUPING_EXPRESSIONS_FIELD_NUMBER: _ClassVar[int]
29
- GROUPING_SETS_FIELD_NUMBER: _ClassVar[int]
30
- GROUP_TYPE_CUBE: Aggregate.GroupType
31
- GROUP_TYPE_FIELD_NUMBER: _ClassVar[int]
32
- GROUP_TYPE_GROUPBY: Aggregate.GroupType
33
- GROUP_TYPE_GROUPING_SETS: Aggregate.GroupType
34
- GROUP_TYPE_PIVOT: Aggregate.GroupType
35
- GROUP_TYPE_ROLLUP: Aggregate.GroupType
36
- GROUP_TYPE_UNSPECIFIED: Aggregate.GroupType
37
- INPUT_FIELD_NUMBER: _ClassVar[int]
38
- PIVOT_FIELD_NUMBER: _ClassVar[int]
39
- aggregate_expressions: _containers.RepeatedCompositeFieldContainer[_expressions_pb2.Expression]
40
- group_type: Aggregate.GroupType
41
- grouping_expressions: _containers.RepeatedCompositeFieldContainer[_expressions_pb2.Expression]
42
- grouping_sets: _containers.RepeatedCompositeFieldContainer[Aggregate.GroupingSets]
43
- input: _relations_pb2.Relation
44
- pivot: Aggregate.Pivot
45
- def __init__(self, input: _Optional[_Union[_relations_pb2.Relation, _Mapping]] = ..., group_type: _Optional[_Union[Aggregate.GroupType, str]] = ..., grouping_expressions: _Optional[_Iterable[_Union[_expressions_pb2.Expression, _Mapping]]] = ..., aggregate_expressions: _Optional[_Iterable[_Union[_expressions_pb2.Expression, _Mapping]]] = ..., pivot: _Optional[_Union[Aggregate.Pivot, _Mapping]] = ..., grouping_sets: _Optional[_Iterable[_Union[Aggregate.GroupingSets, _Mapping]]] = ...) -> None: ...
46
-
47
11
  class Extension(_message.Message):
48
- __slots__ = ["aggregate", "lateral_join", "rdd_map", "rdd_reduce", "subquery_column_aliases", "udtf_with_table_arguments"]
49
- AGGREGATE_FIELD_NUMBER: _ClassVar[int]
50
- LATERAL_JOIN_FIELD_NUMBER: _ClassVar[int]
12
+ __slots__ = ("rdd_map", "rdd_reduce", "subquery_column_aliases", "lateral_join", "udtf_with_table_arguments", "aggregate")
51
13
  RDD_MAP_FIELD_NUMBER: _ClassVar[int]
52
14
  RDD_REDUCE_FIELD_NUMBER: _ClassVar[int]
53
15
  SUBQUERY_COLUMN_ALIASES_FIELD_NUMBER: _ClassVar[int]
16
+ LATERAL_JOIN_FIELD_NUMBER: _ClassVar[int]
54
17
  UDTF_WITH_TABLE_ARGUMENTS_FIELD_NUMBER: _ClassVar[int]
55
- aggregate: Aggregate
56
- lateral_join: LateralJoin
18
+ AGGREGATE_FIELD_NUMBER: _ClassVar[int]
57
19
  rdd_map: RddMap
58
20
  rdd_reduce: RddReduce
59
21
  subquery_column_aliases: SubqueryColumnAliases
22
+ lateral_join: LateralJoin
60
23
  udtf_with_table_arguments: UDTFWithTableArguments
24
+ aggregate: Aggregate
61
25
  def __init__(self, rdd_map: _Optional[_Union[RddMap, _Mapping]] = ..., rdd_reduce: _Optional[_Union[RddReduce, _Mapping]] = ..., subquery_column_aliases: _Optional[_Union[SubqueryColumnAliases, _Mapping]] = ..., lateral_join: _Optional[_Union[LateralJoin, _Mapping]] = ..., udtf_with_table_arguments: _Optional[_Union[UDTFWithTableArguments, _Mapping]] = ..., aggregate: _Optional[_Union[Aggregate, _Mapping]] = ...) -> None: ...
62
26
 
63
- class LateralJoin(_message.Message):
64
- __slots__ = ["left", "right"]
65
- LEFT_FIELD_NUMBER: _ClassVar[int]
66
- RIGHT_FIELD_NUMBER: _ClassVar[int]
67
- left: _relations_pb2.Relation
68
- right: _relations_pb2.Relation
69
- def __init__(self, left: _Optional[_Union[_relations_pb2.Relation, _Mapping]] = ..., right: _Optional[_Union[_relations_pb2.Relation, _Mapping]] = ...) -> None: ...
70
-
71
27
  class RddMap(_message.Message):
72
- __slots__ = ["func", "input"]
73
- FUNC_FIELD_NUMBER: _ClassVar[int]
28
+ __slots__ = ("input", "func")
74
29
  INPUT_FIELD_NUMBER: _ClassVar[int]
75
- func: bytes
30
+ FUNC_FIELD_NUMBER: _ClassVar[int]
76
31
  input: _relations_pb2.Relation
32
+ func: bytes
77
33
  def __init__(self, input: _Optional[_Union[_relations_pb2.Relation, _Mapping]] = ..., func: _Optional[bytes] = ...) -> None: ...
78
34
 
79
35
  class RddReduce(_message.Message):
80
- __slots__ = ["func", "input"]
81
- FUNC_FIELD_NUMBER: _ClassVar[int]
36
+ __slots__ = ("input", "func")
82
37
  INPUT_FIELD_NUMBER: _ClassVar[int]
83
- func: bytes
38
+ FUNC_FIELD_NUMBER: _ClassVar[int]
84
39
  input: _relations_pb2.Relation
40
+ func: bytes
85
41
  def __init__(self, input: _Optional[_Union[_relations_pb2.Relation, _Mapping]] = ..., func: _Optional[bytes] = ...) -> None: ...
86
42
 
87
43
  class SubqueryColumnAliases(_message.Message):
88
- __slots__ = ["aliases", "input"]
89
- ALIASES_FIELD_NUMBER: _ClassVar[int]
44
+ __slots__ = ("input", "aliases")
90
45
  INPUT_FIELD_NUMBER: _ClassVar[int]
91
- aliases: _containers.RepeatedScalarFieldContainer[str]
46
+ ALIASES_FIELD_NUMBER: _ClassVar[int]
92
47
  input: _relations_pb2.Relation
48
+ aliases: _containers.RepeatedScalarFieldContainer[str]
93
49
  def __init__(self, input: _Optional[_Union[_relations_pb2.Relation, _Mapping]] = ..., aliases: _Optional[_Iterable[str]] = ...) -> None: ...
94
50
 
95
- class TableArgumentInfo(_message.Message):
96
- __slots__ = ["table_argument", "table_argument_idx"]
97
- TABLE_ARGUMENT_FIELD_NUMBER: _ClassVar[int]
98
- TABLE_ARGUMENT_IDX_FIELD_NUMBER: _ClassVar[int]
99
- table_argument: _relations_pb2.Relation
100
- table_argument_idx: int
101
- def __init__(self, table_argument: _Optional[_Union[_relations_pb2.Relation, _Mapping]] = ..., table_argument_idx: _Optional[int] = ...) -> None: ...
51
+ class LateralJoin(_message.Message):
52
+ __slots__ = ("left", "right")
53
+ LEFT_FIELD_NUMBER: _ClassVar[int]
54
+ RIGHT_FIELD_NUMBER: _ClassVar[int]
55
+ left: _relations_pb2.Relation
56
+ right: _relations_pb2.Relation
57
+ def __init__(self, left: _Optional[_Union[_relations_pb2.Relation, _Mapping]] = ..., right: _Optional[_Union[_relations_pb2.Relation, _Mapping]] = ...) -> None: ...
102
58
 
103
59
  class UDTFWithTableArguments(_message.Message):
104
- __slots__ = ["arguments", "function_name", "table_arguments"]
105
- ARGUMENTS_FIELD_NUMBER: _ClassVar[int]
60
+ __slots__ = ("function_name", "arguments", "table_arguments")
106
61
  FUNCTION_NAME_FIELD_NUMBER: _ClassVar[int]
62
+ ARGUMENTS_FIELD_NUMBER: _ClassVar[int]
107
63
  TABLE_ARGUMENTS_FIELD_NUMBER: _ClassVar[int]
108
- arguments: _containers.RepeatedCompositeFieldContainer[_expressions_pb2.Expression]
109
64
  function_name: str
65
+ arguments: _containers.RepeatedCompositeFieldContainer[_expressions_pb2.Expression]
110
66
  table_arguments: _containers.RepeatedCompositeFieldContainer[TableArgumentInfo]
111
67
  def __init__(self, function_name: _Optional[str] = ..., arguments: _Optional[_Iterable[_Union[_expressions_pb2.Expression, _Mapping]]] = ..., table_arguments: _Optional[_Iterable[_Union[TableArgumentInfo, _Mapping]]] = ...) -> None: ...
68
+
69
+ class TableArgumentInfo(_message.Message):
70
+ __slots__ = ("table_argument", "table_argument_idx")
71
+ TABLE_ARGUMENT_FIELD_NUMBER: _ClassVar[int]
72
+ TABLE_ARGUMENT_IDX_FIELD_NUMBER: _ClassVar[int]
73
+ table_argument: _relations_pb2.Relation
74
+ table_argument_idx: int
75
+ def __init__(self, table_argument: _Optional[_Union[_relations_pb2.Relation, _Mapping]] = ..., table_argument_idx: _Optional[int] = ...) -> None: ...
76
+
77
+ class Aggregate(_message.Message):
78
+ __slots__ = ("input", "group_type", "grouping_expressions", "aggregate_expressions", "pivot", "grouping_sets")
79
+ class GroupType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
80
+ __slots__ = ()
81
+ GROUP_TYPE_UNSPECIFIED: _ClassVar[Aggregate.GroupType]
82
+ GROUP_TYPE_GROUPBY: _ClassVar[Aggregate.GroupType]
83
+ GROUP_TYPE_ROLLUP: _ClassVar[Aggregate.GroupType]
84
+ GROUP_TYPE_CUBE: _ClassVar[Aggregate.GroupType]
85
+ GROUP_TYPE_PIVOT: _ClassVar[Aggregate.GroupType]
86
+ GROUP_TYPE_GROUPING_SETS: _ClassVar[Aggregate.GroupType]
87
+ GROUP_TYPE_UNSPECIFIED: Aggregate.GroupType
88
+ GROUP_TYPE_GROUPBY: Aggregate.GroupType
89
+ GROUP_TYPE_ROLLUP: Aggregate.GroupType
90
+ GROUP_TYPE_CUBE: Aggregate.GroupType
91
+ GROUP_TYPE_PIVOT: Aggregate.GroupType
92
+ GROUP_TYPE_GROUPING_SETS: Aggregate.GroupType
93
+ class Pivot(_message.Message):
94
+ __slots__ = ("col", "values")
95
+ COL_FIELD_NUMBER: _ClassVar[int]
96
+ VALUES_FIELD_NUMBER: _ClassVar[int]
97
+ col: _expressions_pb2.Expression
98
+ values: _containers.RepeatedCompositeFieldContainer[_expressions_pb2.Expression.Literal]
99
+ def __init__(self, col: _Optional[_Union[_expressions_pb2.Expression, _Mapping]] = ..., values: _Optional[_Iterable[_Union[_expressions_pb2.Expression.Literal, _Mapping]]] = ...) -> None: ...
100
+ class GroupingSets(_message.Message):
101
+ __slots__ = ("grouping_set",)
102
+ GROUPING_SET_FIELD_NUMBER: _ClassVar[int]
103
+ grouping_set: _containers.RepeatedCompositeFieldContainer[_expressions_pb2.Expression]
104
+ def __init__(self, grouping_set: _Optional[_Iterable[_Union[_expressions_pb2.Expression, _Mapping]]] = ...) -> None: ...
105
+ INPUT_FIELD_NUMBER: _ClassVar[int]
106
+ GROUP_TYPE_FIELD_NUMBER: _ClassVar[int]
107
+ GROUPING_EXPRESSIONS_FIELD_NUMBER: _ClassVar[int]
108
+ AGGREGATE_EXPRESSIONS_FIELD_NUMBER: _ClassVar[int]
109
+ PIVOT_FIELD_NUMBER: _ClassVar[int]
110
+ GROUPING_SETS_FIELD_NUMBER: _ClassVar[int]
111
+ input: _relations_pb2.Relation
112
+ group_type: Aggregate.GroupType
113
+ grouping_expressions: _containers.RepeatedCompositeFieldContainer[_expressions_pb2.Expression]
114
+ aggregate_expressions: _containers.RepeatedCompositeFieldContainer[_expressions_pb2.Expression]
115
+ pivot: Aggregate.Pivot
116
+ grouping_sets: _containers.RepeatedCompositeFieldContainer[Aggregate.GroupingSets]
117
+ def __init__(self, input: _Optional[_Union[_relations_pb2.Relation, _Mapping]] = ..., group_type: _Optional[_Union[Aggregate.GroupType, str]] = ..., grouping_expressions: _Optional[_Iterable[_Union[_expressions_pb2.Expression, _Mapping]]] = ..., aggregate_expressions: _Optional[_Iterable[_Union[_expressions_pb2.Expression, _Mapping]]] = ..., pivot: _Optional[_Union[Aggregate.Pivot, _Mapping]] = ..., grouping_sets: _Optional[_Iterable[_Union[Aggregate.GroupingSets, _Mapping]]] = ...) -> None: ...
@@ -9,10 +9,10 @@ import pandas
9
9
  import pyspark.sql.connect.proto.common_pb2 as common_proto
10
10
  import pyspark.sql.connect.proto.types_pb2 as types_proto
11
11
 
12
- from snowflake import snowpark
13
12
  from snowflake.snowpark._internal.analyzer.analyzer_utils import unquote_if_quoted
13
+ from snowflake.snowpark_connect.dataframe_container import DataFrameContainer
14
14
  from snowflake.snowpark_connect.error.exceptions import MissingDatabase, MissingSchema
15
- from snowflake.snowpark_connect.utils.attribute_handling import (
15
+ from snowflake.snowpark_connect.utils.identifiers import (
16
16
  split_fully_qualified_spark_name,
17
17
  )
18
18
  from snowflake.snowpark_connect.utils.session import get_or_create_snowpark_session
@@ -38,7 +38,7 @@ class AbstractSparkCatalog(ABC):
38
38
  schema: types_proto.DataType,
39
39
  description: str,
40
40
  **options: typing.Any,
41
- ) -> snowpark.DataFrame:
41
+ ) -> DataFrameContainer:
42
42
  raise SnowparkConnectNotImplementedError("createTable is not implemented")
43
43
 
44
44
  @abstractmethod
@@ -110,7 +110,7 @@ class AbstractSparkCatalog(ABC):
110
110
  def dropGlobalTempView(
111
111
  self,
112
112
  spark_view_name: str,
113
- ) -> snowpark.DataFrame:
113
+ ) -> DataFrameContainer:
114
114
  raise SnowparkConnectNotImplementedError(
115
115
  "dropGlobalTempView is not implemented"
116
116
  )
@@ -119,7 +119,7 @@ class AbstractSparkCatalog(ABC):
119
119
  def dropTempView(
120
120
  self,
121
121
  spark_view_name: str,
122
- ) -> snowpark.DataFrame:
122
+ ) -> DataFrameContainer:
123
123
  raise SnowparkConnectNotImplementedError("dropTempView is not implemented")
124
124
 
125
125
  def cacheTable(