snowpark-connect 0.27.0__py3-none-any.whl → 1.7.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.
Files changed (200) hide show
  1. snowflake/snowpark_connect/__init__.py +1 -0
  2. snowflake/snowpark_connect/analyze_plan/map_tree_string.py +8 -4
  3. snowflake/snowpark_connect/client/__init__.py +15 -0
  4. snowflake/snowpark_connect/client/error_utils.py +30 -0
  5. snowflake/snowpark_connect/client/exceptions.py +36 -0
  6. snowflake/snowpark_connect/client/query_results.py +90 -0
  7. snowflake/snowpark_connect/client/server.py +717 -0
  8. snowflake/snowpark_connect/client/utils/__init__.py +10 -0
  9. snowflake/snowpark_connect/client/utils/session.py +85 -0
  10. snowflake/snowpark_connect/column_name_handler.py +404 -243
  11. snowflake/snowpark_connect/column_qualifier.py +43 -0
  12. snowflake/snowpark_connect/config.py +309 -26
  13. snowflake/snowpark_connect/constants.py +2 -0
  14. snowflake/snowpark_connect/dataframe_container.py +102 -8
  15. snowflake/snowpark_connect/date_time_format_mapping.py +71 -13
  16. snowflake/snowpark_connect/error/error_codes.py +50 -0
  17. snowflake/snowpark_connect/error/error_utils.py +172 -23
  18. snowflake/snowpark_connect/error/exceptions.py +13 -4
  19. snowflake/snowpark_connect/execute_plan/map_execution_command.py +15 -160
  20. snowflake/snowpark_connect/execute_plan/map_execution_root.py +26 -20
  21. snowflake/snowpark_connect/execute_plan/utils.py +5 -1
  22. snowflake/snowpark_connect/expression/error_utils.py +28 -0
  23. snowflake/snowpark_connect/expression/function_defaults.py +9 -2
  24. snowflake/snowpark_connect/expression/hybrid_column_map.py +53 -5
  25. snowflake/snowpark_connect/expression/integral_types_support.py +219 -0
  26. snowflake/snowpark_connect/expression/literal.py +37 -13
  27. snowflake/snowpark_connect/expression/map_cast.py +224 -15
  28. snowflake/snowpark_connect/expression/map_expression.py +80 -27
  29. snowflake/snowpark_connect/expression/map_extension.py +322 -12
  30. snowflake/snowpark_connect/expression/map_sql_expression.py +316 -81
  31. snowflake/snowpark_connect/expression/map_udf.py +86 -20
  32. snowflake/snowpark_connect/expression/map_unresolved_attribute.py +451 -173
  33. snowflake/snowpark_connect/expression/map_unresolved_function.py +2964 -829
  34. snowflake/snowpark_connect/expression/map_unresolved_star.py +87 -23
  35. snowflake/snowpark_connect/expression/map_update_fields.py +70 -18
  36. snowflake/snowpark_connect/expression/map_window_function.py +18 -3
  37. snowflake/snowpark_connect/includes/jars/json4s-ast_2.13-3.7.0-M11.jar +0 -0
  38. snowflake/snowpark_connect/includes/jars/{scala-library-2.12.18.jar → sas-scala-udf_2.12-0.2.0.jar} +0 -0
  39. snowflake/snowpark_connect/includes/jars/sas-scala-udf_2.13-0.2.0.jar +0 -0
  40. snowflake/snowpark_connect/includes/jars/scala-reflect-2.13.16.jar +0 -0
  41. snowflake/snowpark_connect/includes/jars/spark-common-utils_2.13-3.5.6.jar +0 -0
  42. snowflake/snowpark_connect/includes/jars/{spark-connect-client-jvm_2.12-3.5.6.jar → spark-connect-client-jvm_2.13-3.5.6.jar} +0 -0
  43. snowflake/snowpark_connect/includes/jars/{spark-sql_2.12-3.5.6.jar → spark-sql_2.13-3.5.6.jar} +0 -0
  44. snowflake/snowpark_connect/includes/python/pyspark/sql/connect/streaming/worker/foreach_batch_worker.py +1 -1
  45. snowflake/snowpark_connect/includes/python/pyspark/sql/connect/streaming/worker/listener_worker.py +1 -1
  46. snowflake/snowpark_connect/proto/snowflake_expression_ext_pb2.py +12 -10
  47. snowflake/snowpark_connect/proto/snowflake_expression_ext_pb2.pyi +14 -2
  48. snowflake/snowpark_connect/proto/snowflake_relation_ext_pb2.py +10 -8
  49. snowflake/snowpark_connect/proto/snowflake_relation_ext_pb2.pyi +13 -6
  50. snowflake/snowpark_connect/relation/catalogs/abstract_spark_catalog.py +65 -17
  51. snowflake/snowpark_connect/relation/catalogs/snowflake_catalog.py +297 -49
  52. snowflake/snowpark_connect/relation/catalogs/utils.py +12 -4
  53. snowflake/snowpark_connect/relation/io_utils.py +110 -10
  54. snowflake/snowpark_connect/relation/map_aggregate.py +239 -256
  55. snowflake/snowpark_connect/relation/map_catalog.py +5 -1
  56. snowflake/snowpark_connect/relation/map_column_ops.py +264 -96
  57. snowflake/snowpark_connect/relation/map_extension.py +263 -29
  58. snowflake/snowpark_connect/relation/map_join.py +683 -442
  59. snowflake/snowpark_connect/relation/map_local_relation.py +28 -1
  60. snowflake/snowpark_connect/relation/map_map_partitions.py +83 -8
  61. snowflake/snowpark_connect/relation/map_relation.py +48 -19
  62. snowflake/snowpark_connect/relation/map_row_ops.py +310 -91
  63. snowflake/snowpark_connect/relation/map_show_string.py +13 -6
  64. snowflake/snowpark_connect/relation/map_sql.py +1233 -222
  65. snowflake/snowpark_connect/relation/map_stats.py +48 -9
  66. snowflake/snowpark_connect/relation/map_subquery_alias.py +11 -2
  67. snowflake/snowpark_connect/relation/map_udtf.py +14 -4
  68. snowflake/snowpark_connect/relation/read/jdbc_read_dbapi.py +53 -14
  69. snowflake/snowpark_connect/relation/read/map_read.py +134 -43
  70. snowflake/snowpark_connect/relation/read/map_read_csv.py +326 -47
  71. snowflake/snowpark_connect/relation/read/map_read_jdbc.py +21 -6
  72. snowflake/snowpark_connect/relation/read/map_read_json.py +324 -86
  73. snowflake/snowpark_connect/relation/read/map_read_parquet.py +146 -28
  74. snowflake/snowpark_connect/relation/read/map_read_partitioned_parquet.py +142 -0
  75. snowflake/snowpark_connect/relation/read/map_read_socket.py +15 -3
  76. snowflake/snowpark_connect/relation/read/map_read_table.py +86 -6
  77. snowflake/snowpark_connect/relation/read/map_read_text.py +22 -4
  78. snowflake/snowpark_connect/relation/read/metadata_utils.py +170 -0
  79. snowflake/snowpark_connect/relation/read/reader_config.py +42 -3
  80. snowflake/snowpark_connect/relation/read/utils.py +50 -5
  81. snowflake/snowpark_connect/relation/stage_locator.py +91 -55
  82. snowflake/snowpark_connect/relation/utils.py +128 -5
  83. snowflake/snowpark_connect/relation/write/jdbc_write_dbapi.py +19 -3
  84. snowflake/snowpark_connect/relation/write/map_write.py +929 -319
  85. snowflake/snowpark_connect/relation/write/map_write_jdbc.py +8 -2
  86. snowflake/snowpark_connect/resources/java_udfs-1.0-SNAPSHOT.jar +0 -0
  87. snowflake/snowpark_connect/resources_initializer.py +171 -48
  88. snowflake/snowpark_connect/server.py +528 -473
  89. snowflake/snowpark_connect/server_common/__init__.py +503 -0
  90. snowflake/snowpark_connect/snowflake_session.py +65 -0
  91. snowflake/snowpark_connect/start_server.py +53 -5
  92. snowflake/snowpark_connect/type_mapping.py +349 -27
  93. snowflake/snowpark_connect/type_support.py +130 -0
  94. snowflake/snowpark_connect/typed_column.py +9 -7
  95. snowflake/snowpark_connect/utils/artifacts.py +9 -8
  96. snowflake/snowpark_connect/utils/cache.py +49 -27
  97. snowflake/snowpark_connect/utils/concurrent.py +36 -1
  98. snowflake/snowpark_connect/utils/context.py +195 -37
  99. snowflake/snowpark_connect/utils/describe_query_cache.py +68 -53
  100. snowflake/snowpark_connect/utils/env_utils.py +5 -1
  101. snowflake/snowpark_connect/utils/expression_transformer.py +172 -0
  102. snowflake/snowpark_connect/utils/identifiers.py +137 -3
  103. snowflake/snowpark_connect/utils/io_utils.py +57 -1
  104. snowflake/snowpark_connect/utils/java_stored_procedure.py +151 -0
  105. snowflake/snowpark_connect/utils/java_udaf_utils.py +321 -0
  106. snowflake/snowpark_connect/utils/java_udtf_utils.py +239 -0
  107. snowflake/snowpark_connect/utils/jvm_udf_utils.py +281 -0
  108. snowflake/snowpark_connect/utils/open_telemetry.py +516 -0
  109. snowflake/snowpark_connect/utils/pandas_udtf_utils.py +8 -4
  110. snowflake/snowpark_connect/utils/patch_spark_line_number.py +181 -0
  111. snowflake/snowpark_connect/utils/profiling.py +25 -8
  112. snowflake/snowpark_connect/utils/scala_udf_utils.py +185 -340
  113. snowflake/snowpark_connect/utils/sequence.py +21 -0
  114. snowflake/snowpark_connect/utils/session.py +64 -28
  115. snowflake/snowpark_connect/utils/snowpark_connect_logging.py +51 -9
  116. snowflake/snowpark_connect/utils/spcs_logger.py +290 -0
  117. snowflake/snowpark_connect/utils/telemetry.py +192 -40
  118. snowflake/snowpark_connect/utils/temporary_view_cache.py +67 -0
  119. snowflake/snowpark_connect/utils/temporary_view_helper.py +334 -0
  120. snowflake/snowpark_connect/utils/udf_cache.py +117 -41
  121. snowflake/snowpark_connect/utils/udf_helper.py +39 -37
  122. snowflake/snowpark_connect/utils/udf_utils.py +133 -14
  123. snowflake/snowpark_connect/utils/udtf_helper.py +8 -1
  124. snowflake/snowpark_connect/utils/udtf_utils.py +46 -31
  125. snowflake/snowpark_connect/utils/udxf_import_utils.py +9 -2
  126. snowflake/snowpark_connect/utils/upload_java_jar.py +57 -0
  127. snowflake/snowpark_connect/version.py +1 -1
  128. snowflake/snowpark_decoder/dp_session.py +6 -2
  129. snowflake/snowpark_decoder/spark_decoder.py +12 -0
  130. {snowpark_connect-0.27.0.data → snowpark_connect-1.7.0.data}/scripts/snowpark-submit +14 -4
  131. {snowpark_connect-0.27.0.dist-info → snowpark_connect-1.7.0.dist-info}/METADATA +16 -7
  132. {snowpark_connect-0.27.0.dist-info → snowpark_connect-1.7.0.dist-info}/RECORD +139 -168
  133. snowflake/snowpark_connect/hidden_column.py +0 -39
  134. snowflake/snowpark_connect/includes/jars/antlr4-runtime-4.9.3.jar +0 -0
  135. snowflake/snowpark_connect/includes/jars/commons-cli-1.5.0.jar +0 -0
  136. snowflake/snowpark_connect/includes/jars/commons-codec-1.16.1.jar +0 -0
  137. snowflake/snowpark_connect/includes/jars/commons-collections-3.2.2.jar +0 -0
  138. snowflake/snowpark_connect/includes/jars/commons-collections4-4.4.jar +0 -0
  139. snowflake/snowpark_connect/includes/jars/commons-compiler-3.1.9.jar +0 -0
  140. snowflake/snowpark_connect/includes/jars/commons-compress-1.26.0.jar +0 -0
  141. snowflake/snowpark_connect/includes/jars/commons-crypto-1.1.0.jar +0 -0
  142. snowflake/snowpark_connect/includes/jars/commons-dbcp-1.4.jar +0 -0
  143. snowflake/snowpark_connect/includes/jars/commons-io-2.16.1.jar +0 -0
  144. snowflake/snowpark_connect/includes/jars/commons-lang-2.6.jar +0 -0
  145. snowflake/snowpark_connect/includes/jars/commons-lang3-3.12.0.jar +0 -0
  146. snowflake/snowpark_connect/includes/jars/commons-logging-1.1.3.jar +0 -0
  147. snowflake/snowpark_connect/includes/jars/commons-math3-3.6.1.jar +0 -0
  148. snowflake/snowpark_connect/includes/jars/commons-pool-1.5.4.jar +0 -0
  149. snowflake/snowpark_connect/includes/jars/commons-text-1.10.0.jar +0 -0
  150. snowflake/snowpark_connect/includes/jars/hadoop-client-api-trimmed-3.3.4.jar +0 -0
  151. snowflake/snowpark_connect/includes/jars/jackson-annotations-2.15.2.jar +0 -0
  152. snowflake/snowpark_connect/includes/jars/jackson-core-2.15.2.jar +0 -0
  153. snowflake/snowpark_connect/includes/jars/jackson-core-asl-1.9.13.jar +0 -0
  154. snowflake/snowpark_connect/includes/jars/jackson-databind-2.15.2.jar +0 -0
  155. snowflake/snowpark_connect/includes/jars/jackson-dataformat-yaml-2.15.2.jar +0 -0
  156. snowflake/snowpark_connect/includes/jars/jackson-datatype-jsr310-2.15.2.jar +0 -0
  157. snowflake/snowpark_connect/includes/jars/jackson-module-scala_2.12-2.15.2.jar +0 -0
  158. snowflake/snowpark_connect/includes/jars/json4s-ast_2.12-3.7.0-M11.jar +0 -0
  159. snowflake/snowpark_connect/includes/jars/json4s-core_2.12-3.7.0-M11.jar +0 -0
  160. snowflake/snowpark_connect/includes/jars/json4s-jackson_2.12-3.7.0-M11.jar +0 -0
  161. snowflake/snowpark_connect/includes/jars/json4s-native_2.12-3.7.0-M11.jar +0 -0
  162. snowflake/snowpark_connect/includes/jars/json4s-scalap_2.12-3.7.0-M11.jar +0 -0
  163. snowflake/snowpark_connect/includes/jars/kryo-shaded-4.0.2.jar +0 -0
  164. snowflake/snowpark_connect/includes/jars/log4j-1.2-api-2.20.0.jar +0 -0
  165. snowflake/snowpark_connect/includes/jars/log4j-api-2.20.0.jar +0 -0
  166. snowflake/snowpark_connect/includes/jars/log4j-core-2.20.0.jar +0 -0
  167. snowflake/snowpark_connect/includes/jars/log4j-slf4j2-impl-2.20.0.jar +0 -0
  168. snowflake/snowpark_connect/includes/jars/paranamer-2.8.3.jar +0 -0
  169. snowflake/snowpark_connect/includes/jars/paranamer-2.8.jar +0 -0
  170. snowflake/snowpark_connect/includes/jars/sas-scala-udf_2.12-0.1.0.jar +0 -0
  171. snowflake/snowpark_connect/includes/jars/scala-collection-compat_2.12-2.7.0.jar +0 -0
  172. snowflake/snowpark_connect/includes/jars/scala-parser-combinators_2.12-2.3.0.jar +0 -0
  173. snowflake/snowpark_connect/includes/jars/scala-reflect-2.12.18.jar +0 -0
  174. snowflake/snowpark_connect/includes/jars/scala-xml_2.12-2.1.0.jar +0 -0
  175. snowflake/snowpark_connect/includes/jars/slf4j-api-2.0.7.jar +0 -0
  176. snowflake/snowpark_connect/includes/jars/spark-catalyst_2.12-3.5.6.jar +0 -0
  177. snowflake/snowpark_connect/includes/jars/spark-common-utils_2.12-3.5.6.jar +0 -0
  178. snowflake/snowpark_connect/includes/jars/spark-core_2.12-3.5.6.jar +0 -0
  179. snowflake/snowpark_connect/includes/jars/spark-graphx_2.12-3.5.6.jar +0 -0
  180. snowflake/snowpark_connect/includes/jars/spark-hive-thriftserver_2.12-3.5.6.jar +0 -0
  181. snowflake/snowpark_connect/includes/jars/spark-hive_2.12-3.5.6.jar +0 -0
  182. snowflake/snowpark_connect/includes/jars/spark-kvstore_2.12-3.5.6.jar +0 -0
  183. snowflake/snowpark_connect/includes/jars/spark-launcher_2.12-3.5.6.jar +0 -0
  184. snowflake/snowpark_connect/includes/jars/spark-mesos_2.12-3.5.6.jar +0 -0
  185. snowflake/snowpark_connect/includes/jars/spark-mllib-local_2.12-3.5.6.jar +0 -0
  186. snowflake/snowpark_connect/includes/jars/spark-network-common_2.12-3.5.6.jar +0 -0
  187. snowflake/snowpark_connect/includes/jars/spark-network-shuffle_2.12-3.5.6.jar +0 -0
  188. snowflake/snowpark_connect/includes/jars/spark-repl_2.12-3.5.6.jar +0 -0
  189. snowflake/snowpark_connect/includes/jars/spark-sketch_2.12-3.5.6.jar +0 -0
  190. snowflake/snowpark_connect/includes/jars/spark-sql-api_2.12-3.5.6.jar +0 -0
  191. snowflake/snowpark_connect/includes/jars/spark-tags_2.12-3.5.6.jar +0 -0
  192. snowflake/snowpark_connect/includes/jars/spark-unsafe_2.12-3.5.6.jar +0 -0
  193. snowflake/snowpark_connect/includes/jars/spark-yarn_2.12-3.5.6.jar +0 -0
  194. {snowpark_connect-0.27.0.data → snowpark_connect-1.7.0.data}/scripts/snowpark-connect +0 -0
  195. {snowpark_connect-0.27.0.data → snowpark_connect-1.7.0.data}/scripts/snowpark-session +0 -0
  196. {snowpark_connect-0.27.0.dist-info → snowpark_connect-1.7.0.dist-info}/WHEEL +0 -0
  197. {snowpark_connect-0.27.0.dist-info → snowpark_connect-1.7.0.dist-info}/licenses/LICENSE-binary +0 -0
  198. {snowpark_connect-0.27.0.dist-info → snowpark_connect-1.7.0.dist-info}/licenses/LICENSE.txt +0 -0
  199. {snowpark_connect-0.27.0.dist-info → snowpark_connect-1.7.0.dist-info}/licenses/NOTICE-binary +0 -0
  200. {snowpark_connect-0.27.0.dist-info → snowpark_connect-1.7.0.dist-info}/top_level.txt +0 -0
@@ -11,6 +11,8 @@ import pyspark.sql.connect.proto.types_pb2 as types_proto
11
11
 
12
12
  from snowflake.snowpark._internal.analyzer.analyzer_utils import unquote_if_quoted
13
13
  from snowflake.snowpark_connect.dataframe_container import DataFrameContainer
14
+ from snowflake.snowpark_connect.error.error_codes import ErrorCodes
15
+ from snowflake.snowpark_connect.error.error_utils import attach_custom_error_code
14
16
  from snowflake.snowpark_connect.error.exceptions import MissingDatabase, MissingSchema
15
17
  from snowflake.snowpark_connect.utils.identifiers import (
16
18
  split_fully_qualified_spark_name,
@@ -39,28 +41,40 @@ class AbstractSparkCatalog(ABC):
39
41
  description: str,
40
42
  **options: typing.Any,
41
43
  ) -> DataFrameContainer:
42
- raise SnowparkConnectNotImplementedError("createTable is not implemented")
44
+ exception = SnowparkConnectNotImplementedError("createTable is not implemented")
45
+ attach_custom_error_code(exception, ErrorCodes.UNSUPPORTED_OPERATION)
46
+ raise exception
43
47
 
44
48
  @abstractmethod
45
49
  def listDatabases(
46
50
  self,
47
51
  pattern: str | None = None,
48
52
  ) -> pandas.DataFrame:
49
- raise SnowparkConnectNotImplementedError("listDatabases is not implemented")
53
+ exception = SnowparkConnectNotImplementedError(
54
+ "listDatabases is not implemented"
55
+ )
56
+ attach_custom_error_code(exception, ErrorCodes.UNSUPPORTED_OPERATION)
57
+ raise exception
50
58
 
51
59
  @abstractmethod
52
60
  def getDatabase(
53
61
  self,
54
62
  spark_dbName: str,
55
63
  ) -> pandas.DataFrame:
56
- raise SnowparkConnectNotImplementedError("getDatabase is not implemented")
64
+ exception = SnowparkConnectNotImplementedError("getDatabase is not implemented")
65
+ attach_custom_error_code(exception, ErrorCodes.UNSUPPORTED_OPERATION)
66
+ raise exception
57
67
 
58
68
  @abstractmethod
59
69
  def databaseExists(
60
70
  self,
61
71
  spark_dbName: str,
62
72
  ) -> pandas.DataFrame:
63
- raise SnowparkConnectNotImplementedError("databaseExists is not implemented")
73
+ exception = SnowparkConnectNotImplementedError(
74
+ "databaseExists is not implemented"
75
+ )
76
+ attach_custom_error_code(exception, ErrorCodes.UNSUPPORTED_OPERATION)
77
+ raise exception
64
78
 
65
79
  @abstractmethod
66
80
  def listTables(
@@ -68,14 +82,18 @@ class AbstractSparkCatalog(ABC):
68
82
  spark_dbName: str | None = None,
69
83
  pattern: str | None = None,
70
84
  ) -> pandas.DataFrame:
71
- raise SnowparkConnectNotImplementedError("listTables is not implemented")
85
+ exception = SnowparkConnectNotImplementedError("listTables is not implemented")
86
+ attach_custom_error_code(exception, ErrorCodes.UNSUPPORTED_OPERATION)
87
+ raise exception
72
88
 
73
89
  @abstractmethod
74
90
  def getTable(
75
91
  self,
76
92
  spark_tableName: str,
77
93
  ) -> pandas.DataFrame:
78
- raise SnowparkConnectNotImplementedError("getTable is not implemented")
94
+ exception = SnowparkConnectNotImplementedError("getTable is not implemented")
95
+ attach_custom_error_code(exception, ErrorCodes.UNSUPPORTED_OPERATION)
96
+ raise exception
79
97
 
80
98
  @abstractmethod
81
99
  def tableExists(
@@ -83,7 +101,9 @@ class AbstractSparkCatalog(ABC):
83
101
  spark_tableName: str,
84
102
  spark_dbName: str | None,
85
103
  ) -> pandas.DataFrame:
86
- raise SnowparkConnectNotImplementedError("tableExists is not implemented")
104
+ exception = SnowparkConnectNotImplementedError("tableExists is not implemented")
105
+ attach_custom_error_code(exception, ErrorCodes.UNSUPPORTED_OPERATION)
106
+ raise exception
87
107
 
88
108
  @abstractmethod
89
109
  def listColumns(
@@ -91,36 +111,50 @@ class AbstractSparkCatalog(ABC):
91
111
  spark_tableName: str,
92
112
  spark_dbName: str | None = None,
93
113
  ) -> pandas.DataFrame:
94
- raise SnowparkConnectNotImplementedError("listColumns is not implemented")
114
+ exception = SnowparkConnectNotImplementedError("listColumns is not implemented")
115
+ attach_custom_error_code(exception, ErrorCodes.UNSUPPORTED_OPERATION)
116
+ raise exception
95
117
 
96
118
  @abstractmethod
97
119
  def currentDatabase(self) -> pandas.DataFrame:
98
- raise SnowparkConnectNotImplementedError("currentDatabase is not implemented")
120
+ exception = SnowparkConnectNotImplementedError(
121
+ "currentDatabase is not implemented"
122
+ )
123
+ attach_custom_error_code(exception, ErrorCodes.UNSUPPORTED_OPERATION)
124
+ raise exception
99
125
 
100
126
  @abstractmethod
101
127
  def setCurrentDatabase(
102
128
  self,
103
129
  spark_dbName: str,
104
130
  ) -> pandas.DataFrame:
105
- raise SnowparkConnectNotImplementedError(
131
+ exception = SnowparkConnectNotImplementedError(
106
132
  "setCurrentDatabase is not implemented"
107
133
  )
134
+ attach_custom_error_code(exception, ErrorCodes.UNSUPPORTED_OPERATION)
135
+ raise exception
108
136
 
109
137
  @abstractmethod
110
138
  def dropGlobalTempView(
111
139
  self,
112
140
  spark_view_name: str,
113
141
  ) -> DataFrameContainer:
114
- raise SnowparkConnectNotImplementedError(
142
+ exception = SnowparkConnectNotImplementedError(
115
143
  "dropGlobalTempView is not implemented"
116
144
  )
145
+ attach_custom_error_code(exception, ErrorCodes.UNSUPPORTED_OPERATION)
146
+ raise exception
117
147
 
118
148
  @abstractmethod
119
149
  def dropTempView(
120
150
  self,
121
151
  spark_view_name: str,
122
152
  ) -> DataFrameContainer:
123
- raise SnowparkConnectNotImplementedError("dropTempView is not implemented")
153
+ exception = SnowparkConnectNotImplementedError(
154
+ "dropTempView is not implemented"
155
+ )
156
+ attach_custom_error_code(exception, ErrorCodes.UNSUPPORTED_OPERATION)
157
+ raise exception
124
158
 
125
159
  def cacheTable(
126
160
  self,
@@ -135,9 +169,11 @@ class AbstractSparkCatalog(ABC):
135
169
  spark_tableName
136
170
  )
137
171
  if catalog is not None and self != catalog:
138
- raise SnowparkConnectNotImplementedError(
172
+ exception = SnowparkConnectNotImplementedError(
139
173
  "Calling into another catalog is not currently supported"
140
174
  )
175
+ attach_custom_error_code(exception, ErrorCodes.UNSUPPORTED_OPERATION)
176
+ raise exception
141
177
  if sf_database is None:
142
178
  sf_database = _get_current_snowflake_database()
143
179
  if sf_schema is None:
@@ -168,9 +204,11 @@ class AbstractSparkCatalog(ABC):
168
204
  spark_tableName
169
205
  )
170
206
  if catalog is not None and self != catalog:
171
- raise SnowparkConnectNotImplementedError(
207
+ exception = SnowparkConnectNotImplementedError(
172
208
  "Calling into another catalog is not currently supported"
173
209
  )
210
+ attach_custom_error_code(exception, ErrorCodes.UNSUPPORTED_OPERATION)
211
+ raise exception
174
212
  if sf_database is None:
175
213
  sf_database = _get_current_snowflake_database()
176
214
  if sf_schema is None:
@@ -194,9 +232,11 @@ class AbstractSparkCatalog(ABC):
194
232
  spark_tableName
195
233
  )
196
234
  if catalog is not None and self != catalog:
197
- raise SnowparkConnectNotImplementedError(
235
+ exception = SnowparkConnectNotImplementedError(
198
236
  "Calling into another catalog is not currently supported"
199
237
  )
238
+ attach_custom_error_code(exception, ErrorCodes.UNSUPPORTED_OPERATION)
239
+ raise exception
200
240
  if sf_database is None:
201
241
  sf_database = _get_current_snowflake_database()
202
242
  if sf_schema is None:
@@ -249,7 +289,11 @@ def _process_multi_layer_database(
249
289
  else:
250
290
  return None, c, d
251
291
  case _:
252
- raise ValueError(f"Unexpected database identifier format: {spark_mli}")
292
+ exception = ValueError(
293
+ f"Unexpected database identifier format: {spark_mli}"
294
+ )
295
+ attach_custom_error_code(exception, ErrorCodes.INVALID_INPUT)
296
+ raise exception
253
297
 
254
298
 
255
299
  def _process_multi_layer_identifier(
@@ -283,5 +327,9 @@ def _process_multi_layer_identifier(
283
327
  else:
284
328
  snowflake_database, snowflake_schema, snowflake_obj = d, s, t
285
329
  case _:
286
- raise ValueError(f"Unexpected table/view identifier format: {spark_mli}")
330
+ exception = ValueError(
331
+ f"Unexpected table/view identifier format: {spark_mli}"
332
+ )
333
+ attach_custom_error_code(exception, ErrorCodes.INVALID_INPUT)
334
+ raise exception
287
335
  return spark_catalog, snowflake_database, snowflake_schema, snowflake_obj