snowpark-connect 0.29.0__tar.gz → 0.30.1__tar.gz

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 (492) hide show
  1. {snowpark_connect-0.29.0/src/snowpark_connect.egg-info → snowpark_connect-0.30.1}/PKG-INFO +1 -1
  2. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/analyze_plan/map_tree_string.py +8 -4
  3. snowpark_connect-0.30.1/src/snowflake/snowpark_connect/client.py +65 -0
  4. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/column_name_handler.py +6 -0
  5. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/config.py +25 -3
  6. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/execute_plan/map_execution_root.py +21 -19
  7. snowpark_connect-0.30.1/src/snowflake/snowpark_connect/expression/map_extension.py +391 -0
  8. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/expression/map_sql_expression.py +107 -2
  9. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/expression/map_unresolved_function.py +253 -59
  10. snowpark_connect-0.30.1/src/snowflake/snowpark_connect/proto/snowflake_expression_ext_pb2.py +38 -0
  11. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/proto/snowflake_expression_ext_pb2.pyi +14 -2
  12. snowpark_connect-0.30.1/src/snowflake/snowpark_connect/proto/snowflake_expression_ext_pb2_grpc.py +4 -0
  13. snowpark_connect-0.30.1/src/snowflake/snowpark_connect/proto/snowflake_relation_ext_pb2_grpc.py +4 -0
  14. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/io_utils.py +61 -4
  15. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/map_column_ops.py +9 -4
  16. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/map_join.py +8 -0
  17. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/map_row_ops.py +129 -17
  18. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/map_show_string.py +14 -6
  19. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/map_sql.py +39 -5
  20. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/map_stats.py +21 -6
  21. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/read/map_read.py +9 -0
  22. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/read/map_read_csv.py +17 -6
  23. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/read/map_read_json.py +12 -2
  24. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/read/map_read_parquet.py +7 -1
  25. snowpark_connect-0.30.1/src/snowflake/snowpark_connect/relation/read/metadata_utils.py +159 -0
  26. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/utils.py +19 -2
  27. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/write/map_write.py +44 -29
  28. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/server.py +11 -3
  29. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/type_mapping.py +75 -3
  30. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/utils/describe_query_cache.py +6 -3
  31. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/utils/telemetry.py +105 -23
  32. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/version.py +1 -1
  33. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1/src/snowpark_connect.egg-info}/PKG-INFO +1 -1
  34. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowpark_connect.egg-info/SOURCES.txt +4 -0
  35. snowpark_connect-0.29.0/src/snowflake/snowpark_connect/expression/map_extension.py +0 -115
  36. snowpark_connect-0.29.0/src/snowflake/snowpark_connect/proto/snowflake_expression_ext_pb2.py +0 -36
  37. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/LICENSE-binary +0 -0
  38. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/LICENSE.txt +0 -0
  39. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/NOTICE-binary +0 -0
  40. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/README.md +0 -0
  41. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/setup.cfg +0 -0
  42. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/setup.py +0 -0
  43. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/__init__.py +0 -0
  44. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/analyze_plan/__init__.py +0 -0
  45. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/constants.py +0 -0
  46. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/control_server.py +0 -0
  47. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/dataframe_container.py +0 -0
  48. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/dataframe_name_handler.py +0 -0
  49. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/date_time_format_mapping.py +0 -0
  50. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/empty_dataframe.py +0 -0
  51. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/error/__init__.py +0 -0
  52. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/error/error_mapping.py +0 -0
  53. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/error/error_utils.py +0 -0
  54. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/error/exceptions.py +0 -0
  55. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/execute_plan/__init__.py +0 -0
  56. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/execute_plan/map_execution_command.py +0 -0
  57. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/execute_plan/utils.py +0 -0
  58. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/expression/__init__.py +0 -0
  59. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/expression/function_defaults.py +0 -0
  60. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/expression/hybrid_column_map.py +0 -0
  61. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/expression/literal.py +0 -0
  62. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/expression/map_cast.py +0 -0
  63. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/expression/map_expression.py +0 -0
  64. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/expression/map_udf.py +0 -0
  65. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/expression/map_unresolved_attribute.py +0 -0
  66. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/expression/map_unresolved_extract_value.py +0 -0
  67. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/expression/map_unresolved_star.py +0 -0
  68. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/expression/map_update_fields.py +0 -0
  69. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/expression/map_window_function.py +0 -0
  70. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/expression/typer.py +0 -0
  71. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/__init__.py +0 -0
  72. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/antlr4-runtime-4.9.3.jar +0 -0
  73. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/commons-cli-1.5.0.jar +0 -0
  74. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/commons-codec-1.16.1.jar +0 -0
  75. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/commons-collections-3.2.2.jar +0 -0
  76. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/commons-collections4-4.4.jar +0 -0
  77. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/commons-compiler-3.1.9.jar +0 -0
  78. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/commons-compress-1.26.0.jar +0 -0
  79. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/commons-crypto-1.1.0.jar +0 -0
  80. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/commons-dbcp-1.4.jar +0 -0
  81. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/commons-io-2.16.1.jar +0 -0
  82. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/commons-lang-2.6.jar +0 -0
  83. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/commons-lang3-3.12.0.jar +0 -0
  84. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/commons-logging-1.1.3.jar +0 -0
  85. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/commons-math3-3.6.1.jar +0 -0
  86. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/commons-pool-1.5.4.jar +0 -0
  87. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/commons-text-1.10.0.jar +0 -0
  88. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/hadoop-client-api-trimmed-3.3.4.jar +0 -0
  89. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/jackson-annotations-2.15.2.jar +0 -0
  90. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/jackson-core-2.15.2.jar +0 -0
  91. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/jackson-core-asl-1.9.13.jar +0 -0
  92. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/jackson-databind-2.15.2.jar +0 -0
  93. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/jackson-dataformat-yaml-2.15.2.jar +0 -0
  94. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/jackson-datatype-jsr310-2.15.2.jar +0 -0
  95. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/jackson-module-scala_2.12-2.15.2.jar +0 -0
  96. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/json4s-ast_2.12-3.7.0-M11.jar +0 -0
  97. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/json4s-core_2.12-3.7.0-M11.jar +0 -0
  98. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/json4s-jackson_2.12-3.7.0-M11.jar +0 -0
  99. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/json4s-native_2.12-3.7.0-M11.jar +0 -0
  100. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/json4s-scalap_2.12-3.7.0-M11.jar +0 -0
  101. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/kryo-shaded-4.0.2.jar +0 -0
  102. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/log4j-1.2-api-2.20.0.jar +0 -0
  103. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/log4j-api-2.20.0.jar +0 -0
  104. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/log4j-core-2.20.0.jar +0 -0
  105. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/log4j-slf4j2-impl-2.20.0.jar +0 -0
  106. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/paranamer-2.8.3.jar +0 -0
  107. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/paranamer-2.8.jar +0 -0
  108. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/sas-scala-udf_2.12-0.1.0.jar +0 -0
  109. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/scala-collection-compat_2.12-2.7.0.jar +0 -0
  110. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/scala-library-2.12.18.jar +0 -0
  111. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/scala-parser-combinators_2.12-2.3.0.jar +0 -0
  112. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/scala-reflect-2.12.18.jar +0 -0
  113. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/scala-xml_2.12-2.1.0.jar +0 -0
  114. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/slf4j-api-2.0.7.jar +0 -0
  115. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/spark-catalyst_2.12-3.5.6.jar +0 -0
  116. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/spark-common-utils_2.12-3.5.6.jar +0 -0
  117. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/spark-connect-client-jvm_2.12-3.5.6.jar +0 -0
  118. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/spark-core_2.12-3.5.6.jar +0 -0
  119. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/spark-graphx_2.12-3.5.6.jar +0 -0
  120. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/spark-hive-thriftserver_2.12-3.5.6.jar +0 -0
  121. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/spark-hive_2.12-3.5.6.jar +0 -0
  122. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/spark-kvstore_2.12-3.5.6.jar +0 -0
  123. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/spark-launcher_2.12-3.5.6.jar +0 -0
  124. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/spark-mesos_2.12-3.5.6.jar +0 -0
  125. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/spark-mllib-local_2.12-3.5.6.jar +0 -0
  126. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/spark-network-common_2.12-3.5.6.jar +0 -0
  127. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/spark-network-shuffle_2.12-3.5.6.jar +0 -0
  128. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/spark-repl_2.12-3.5.6.jar +0 -0
  129. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/spark-sketch_2.12-3.5.6.jar +0 -0
  130. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/spark-sql-api_2.12-3.5.6.jar +0 -0
  131. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/spark-sql_2.12-3.5.6.jar +0 -0
  132. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/spark-tags_2.12-3.5.6.jar +0 -0
  133. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/spark-unsafe_2.12-3.5.6.jar +0 -0
  134. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/jars/spark-yarn_2.12-3.5.6.jar +0 -0
  135. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/__init__.py +0 -0
  136. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/__init__.py +0 -0
  137. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/_globals.py +0 -0
  138. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/_typing.pyi +0 -0
  139. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/accumulators.py +0 -0
  140. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/broadcast.py +0 -0
  141. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/cloudpickle/__init__.py +0 -0
  142. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/cloudpickle/cloudpickle.py +0 -0
  143. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/cloudpickle/cloudpickle_fast.py +0 -0
  144. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/cloudpickle/compat.py +0 -0
  145. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/conf.py +0 -0
  146. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/context.py +0 -0
  147. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/daemon.py +0 -0
  148. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/errors/__init__.py +0 -0
  149. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/errors/error_classes.py +0 -0
  150. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/errors/exceptions/__init__.py +0 -0
  151. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/errors/exceptions/base.py +0 -0
  152. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/errors/exceptions/captured.py +0 -0
  153. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/errors/exceptions/connect.py +0 -0
  154. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/errors/utils.py +0 -0
  155. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/files.py +0 -0
  156. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/find_spark_home.py +0 -0
  157. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/install.py +0 -0
  158. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/instrumentation_utils.py +0 -0
  159. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/java_gateway.py +0 -0
  160. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/join.py +0 -0
  161. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/__init__.py +0 -0
  162. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/_typing.pyi +0 -0
  163. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/base.py +0 -0
  164. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/classification.py +0 -0
  165. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/clustering.py +0 -0
  166. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/common.py +0 -0
  167. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/connect/__init__.py +0 -0
  168. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/connect/base.py +0 -0
  169. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/connect/classification.py +0 -0
  170. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/connect/evaluation.py +0 -0
  171. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/connect/feature.py +0 -0
  172. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/connect/functions.py +0 -0
  173. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/connect/io_utils.py +0 -0
  174. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/connect/pipeline.py +0 -0
  175. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/connect/summarizer.py +0 -0
  176. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/connect/tuning.py +0 -0
  177. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/connect/util.py +0 -0
  178. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/deepspeed/__init__.py +0 -0
  179. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/deepspeed/deepspeed_distributor.py +0 -0
  180. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/dl_util.py +0 -0
  181. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/evaluation.py +0 -0
  182. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/feature.py +0 -0
  183. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/fpm.py +0 -0
  184. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/functions.py +0 -0
  185. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/image.py +0 -0
  186. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/linalg/__init__.py +0 -0
  187. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/model_cache.py +0 -0
  188. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/param/__init__.py +0 -0
  189. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/param/_shared_params_code_gen.py +0 -0
  190. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/param/shared.py +0 -0
  191. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/pipeline.py +0 -0
  192. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/recommendation.py +0 -0
  193. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/regression.py +0 -0
  194. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/stat.py +0 -0
  195. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/torch/__init__.py +0 -0
  196. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/torch/data.py +0 -0
  197. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/torch/distributor.py +0 -0
  198. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/torch/log_communication.py +0 -0
  199. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/torch/torch_run_process_wrapper.py +0 -0
  200. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/tree.py +0 -0
  201. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/tuning.py +0 -0
  202. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/util.py +0 -0
  203. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/wrapper.py +0 -0
  204. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/__init__.py +0 -0
  205. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/_typing.pyi +0 -0
  206. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/classification.py +0 -0
  207. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/clustering.py +0 -0
  208. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/common.py +0 -0
  209. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/evaluation.py +0 -0
  210. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/feature.py +0 -0
  211. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/fpm.py +0 -0
  212. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/linalg/__init__.py +0 -0
  213. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/linalg/distributed.py +0 -0
  214. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/random.py +0 -0
  215. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/recommendation.py +0 -0
  216. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/regression.py +0 -0
  217. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/stat/KernelDensity.py +0 -0
  218. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/stat/__init__.py +0 -0
  219. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/stat/_statistics.py +0 -0
  220. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/stat/distribution.py +0 -0
  221. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/stat/test.py +0 -0
  222. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/tree.py +0 -0
  223. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/util.py +0 -0
  224. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/__init__.py +0 -0
  225. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/_typing.py +0 -0
  226. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/accessors.py +0 -0
  227. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/base.py +0 -0
  228. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/categorical.py +0 -0
  229. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/config.py +0 -0
  230. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/correlation.py +0 -0
  231. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/data_type_ops/__init__.py +0 -0
  232. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/data_type_ops/base.py +0 -0
  233. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/data_type_ops/binary_ops.py +0 -0
  234. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/data_type_ops/boolean_ops.py +0 -0
  235. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/data_type_ops/categorical_ops.py +0 -0
  236. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/data_type_ops/complex_ops.py +0 -0
  237. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/data_type_ops/date_ops.py +0 -0
  238. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/data_type_ops/datetime_ops.py +0 -0
  239. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/data_type_ops/null_ops.py +0 -0
  240. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/data_type_ops/num_ops.py +0 -0
  241. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/data_type_ops/string_ops.py +0 -0
  242. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/data_type_ops/timedelta_ops.py +0 -0
  243. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/data_type_ops/udt_ops.py +0 -0
  244. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/datetimes.py +0 -0
  245. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/exceptions.py +0 -0
  246. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/extensions.py +0 -0
  247. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/frame.py +0 -0
  248. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/generic.py +0 -0
  249. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/groupby.py +0 -0
  250. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/indexes/__init__.py +0 -0
  251. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/indexes/base.py +0 -0
  252. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/indexes/category.py +0 -0
  253. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/indexes/datetimes.py +0 -0
  254. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/indexes/multi.py +0 -0
  255. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/indexes/numeric.py +0 -0
  256. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/indexes/timedelta.py +0 -0
  257. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/indexing.py +0 -0
  258. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/internal.py +0 -0
  259. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/missing/__init__.py +0 -0
  260. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/missing/common.py +0 -0
  261. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/missing/frame.py +0 -0
  262. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/missing/general_functions.py +0 -0
  263. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/missing/groupby.py +0 -0
  264. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/missing/indexes.py +0 -0
  265. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/missing/resample.py +0 -0
  266. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/missing/scalars.py +0 -0
  267. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/missing/series.py +0 -0
  268. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/missing/window.py +0 -0
  269. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/mlflow.py +0 -0
  270. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/namespace.py +0 -0
  271. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/numpy_compat.py +0 -0
  272. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/plot/__init__.py +0 -0
  273. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/plot/core.py +0 -0
  274. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/plot/matplotlib.py +0 -0
  275. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/plot/plotly.py +0 -0
  276. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/resample.py +0 -0
  277. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/series.py +0 -0
  278. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/sql_formatter.py +0 -0
  279. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/sql_processor.py +0 -0
  280. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/strings.py +0 -0
  281. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/supported_api_gen.py +0 -0
  282. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/typedef/__init__.py +0 -0
  283. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/typedef/typehints.py +0 -0
  284. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/usage_logging/__init__.py +0 -0
  285. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/usage_logging/usage_logger.py +0 -0
  286. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/utils.py +0 -0
  287. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/window.py +0 -0
  288. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/profiler.py +0 -0
  289. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/py.typed +0 -0
  290. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/python/pyspark/shell.py +0 -0
  291. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/rdd.py +0 -0
  292. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/rddsampler.py +0 -0
  293. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/resource/__init__.py +0 -0
  294. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/resource/information.py +0 -0
  295. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/resource/profile.py +0 -0
  296. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/resource/requests.py +0 -0
  297. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/resultiterable.py +0 -0
  298. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/serializers.py +0 -0
  299. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/shell.py +0 -0
  300. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/shuffle.py +0 -0
  301. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/__init__.py +0 -0
  302. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/_typing.pyi +0 -0
  303. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/avro/__init__.py +0 -0
  304. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/avro/functions.py +0 -0
  305. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/catalog.py +0 -0
  306. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/column.py +0 -0
  307. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/conf.py +0 -0
  308. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/__init__.py +0 -0
  309. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/_typing.py +0 -0
  310. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/avro/__init__.py +0 -0
  311. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/avro/functions.py +0 -0
  312. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/catalog.py +0 -0
  313. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/client/__init__.py +0 -0
  314. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/client/artifact.py +0 -0
  315. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/client/core.py +0 -0
  316. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/client/reattach.py +0 -0
  317. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/column.py +0 -0
  318. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/conf.py +0 -0
  319. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/conversion.py +0 -0
  320. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/dataframe.py +0 -0
  321. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/expressions.py +0 -0
  322. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/functions.py +0 -0
  323. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/group.py +0 -0
  324. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/plan.py +0 -0
  325. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/__init__.py +0 -0
  326. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/base_pb2.py +0 -0
  327. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/base_pb2.pyi +0 -0
  328. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/base_pb2_grpc.py +0 -0
  329. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/catalog_pb2.py +0 -0
  330. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/catalog_pb2.pyi +0 -0
  331. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/commands_pb2.py +0 -0
  332. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/commands_pb2.pyi +0 -0
  333. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/common_pb2.py +0 -0
  334. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/common_pb2.pyi +0 -0
  335. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/example_plugins_pb2.py +0 -0
  336. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/example_plugins_pb2.pyi +0 -0
  337. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/expressions_pb2.py +0 -0
  338. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/expressions_pb2.pyi +0 -0
  339. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/relations_pb2.py +0 -0
  340. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/relations_pb2.pyi +0 -0
  341. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/types_pb2.py +0 -0
  342. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/types_pb2.pyi +0 -0
  343. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/protobuf/__init__.py +0 -0
  344. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/protobuf/functions.py +0 -0
  345. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/readwriter.py +0 -0
  346. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/session.py +0 -0
  347. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/streaming/__init__.py +0 -0
  348. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/streaming/query.py +0 -0
  349. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/streaming/readwriter.py +0 -0
  350. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/streaming/worker/__init__.py +0 -0
  351. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/streaming/worker/foreach_batch_worker.py +0 -0
  352. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/streaming/worker/listener_worker.py +0 -0
  353. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/types.py +0 -0
  354. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/udf.py +0 -0
  355. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/udtf.py +0 -0
  356. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/utils.py +0 -0
  357. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/window.py +0 -0
  358. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/context.py +0 -0
  359. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/dataframe.py +0 -0
  360. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/functions.py +0 -0
  361. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/group.py +0 -0
  362. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/observation.py +0 -0
  363. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/pandas/__init__.py +0 -0
  364. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/pandas/_typing/__init__.pyi +0 -0
  365. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/pandas/_typing/protocols/__init__.pyi +0 -0
  366. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/pandas/_typing/protocols/frame.pyi +0 -0
  367. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/pandas/_typing/protocols/series.pyi +0 -0
  368. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/pandas/conversion.py +0 -0
  369. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/pandas/functions.py +0 -0
  370. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/pandas/functions.pyi +0 -0
  371. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/pandas/group_ops.py +0 -0
  372. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/pandas/map_ops.py +0 -0
  373. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/pandas/serializers.py +0 -0
  374. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/pandas/typehints.py +0 -0
  375. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/pandas/types.py +0 -0
  376. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/pandas/utils.py +0 -0
  377. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/protobuf/__init__.py +0 -0
  378. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/protobuf/functions.py +0 -0
  379. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/readwriter.py +0 -0
  380. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/session.py +0 -0
  381. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/sql_formatter.py +0 -0
  382. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/streaming/__init__.py +0 -0
  383. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/streaming/listener.py +0 -0
  384. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/streaming/query.py +0 -0
  385. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/streaming/readwriter.py +0 -0
  386. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/streaming/state.py +0 -0
  387. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/types.py +0 -0
  388. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/udf.py +0 -0
  389. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/udtf.py +0 -0
  390. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/utils.py +0 -0
  391. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/window.py +0 -0
  392. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/statcounter.py +0 -0
  393. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/status.py +0 -0
  394. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/storagelevel.py +0 -0
  395. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/streaming/__init__.py +0 -0
  396. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/streaming/context.py +0 -0
  397. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/streaming/dstream.py +0 -0
  398. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/streaming/kinesis.py +0 -0
  399. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/streaming/listener.py +0 -0
  400. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/streaming/util.py +0 -0
  401. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/taskcontext.py +0 -0
  402. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/testing/__init__.py +0 -0
  403. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/testing/connectutils.py +0 -0
  404. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/testing/mllibutils.py +0 -0
  405. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/testing/mlutils.py +0 -0
  406. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/testing/objects.py +0 -0
  407. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/testing/pandasutils.py +0 -0
  408. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/testing/sqlutils.py +0 -0
  409. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/testing/streamingutils.py +0 -0
  410. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/testing/utils.py +0 -0
  411. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/traceback_utils.py +0 -0
  412. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/util.py +0 -0
  413. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/version.py +0 -0
  414. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/worker.py +0 -0
  415. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/includes/python/pyspark/worker_util.py +0 -0
  416. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/proto/__init__.py +0 -0
  417. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/proto/control_pb2.py +0 -0
  418. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/proto/control_pb2.pyi +0 -0
  419. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/proto/control_pb2_grpc.py +0 -0
  420. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/proto/snowflake_rdd_pb2.pyi +0 -0
  421. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/proto/snowflake_relation_ext_pb2.py +0 -0
  422. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/proto/snowflake_relation_ext_pb2.pyi +0 -0
  423. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/__init__.py +0 -0
  424. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/catalogs/__init__.py +0 -0
  425. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/catalogs/abstract_spark_catalog.py +0 -0
  426. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/catalogs/snowflake_catalog.py +0 -0
  427. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/catalogs/utils.py +0 -0
  428. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/map_aggregate.py +0 -0
  429. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/map_catalog.py +0 -0
  430. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/map_crosstab.py +0 -0
  431. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/map_extension.py +0 -0
  432. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/map_local_relation.py +0 -0
  433. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/map_map_partitions.py +0 -0
  434. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/map_relation.py +0 -0
  435. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/map_sample_by.py +0 -0
  436. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/map_subquery_alias.py +0 -0
  437. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/map_udtf.py +0 -0
  438. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/read/__init__.py +0 -0
  439. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/read/jdbc_read_dbapi.py +0 -0
  440. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/read/map_read_jdbc.py +0 -0
  441. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/read/map_read_socket.py +0 -0
  442. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/read/map_read_table.py +0 -0
  443. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/read/map_read_text.py +0 -0
  444. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/read/reader_config.py +0 -0
  445. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/read/utils.py +0 -0
  446. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/stage_locator.py +0 -0
  447. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/write/__init__.py +0 -0
  448. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/write/jdbc_write_dbapi.py +0 -0
  449. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/relation/write/map_write_jdbc.py +0 -0
  450. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/resources/java_udfs-1.0-SNAPSHOT.jar +0 -0
  451. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/resources_initializer.py +0 -0
  452. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/start_server.py +0 -0
  453. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/tcm.py +0 -0
  454. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/typed_column.py +0 -0
  455. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/utils/__init__.py +0 -0
  456. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/utils/artifacts.py +0 -0
  457. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/utils/cache.py +0 -0
  458. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/utils/concurrent.py +0 -0
  459. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/utils/context.py +0 -0
  460. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/utils/env_utils.py +0 -0
  461. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/utils/external_udxf_cache.py +0 -0
  462. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/utils/identifiers.py +0 -0
  463. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/utils/interrupt.py +0 -0
  464. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/utils/io_utils.py +0 -0
  465. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/utils/pandas_udtf_utils.py +0 -0
  466. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/utils/profiling.py +0 -0
  467. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/utils/scala_udf_utils.py +0 -0
  468. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/utils/session.py +0 -0
  469. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/utils/snowpark_connect_logging.py +0 -0
  470. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/utils/temporary_view_cache.py +0 -0
  471. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/utils/udf_cache.py +0 -0
  472. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/utils/udf_helper.py +0 -0
  473. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/utils/udf_utils.py +0 -0
  474. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/utils/udtf_helper.py +0 -0
  475. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/utils/udtf_utils.py +0 -0
  476. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/utils/udxf_import_utils.py +0 -0
  477. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_connect/utils/xxhash64.py +0 -0
  478. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_decoder/__init__.py +0 -0
  479. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_decoder/_internal/proto/generated/DataframeProcessorMsg_pb2.py +0 -0
  480. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_decoder/_internal/proto/generated/DataframeProcessorMsg_pb2.pyi +0 -0
  481. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_decoder/dp_session.py +0 -0
  482. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowflake/snowpark_decoder/spark_decoder.py +0 -0
  483. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowpark_connect.egg-info/dependency_links.txt +0 -0
  484. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowpark_connect.egg-info/requires.txt +0 -0
  485. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/snowpark_connect.egg-info/top_level.txt +0 -0
  486. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/spark/__init__.py +0 -0
  487. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/spark/connect/__init__.py +0 -0
  488. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/spark/connect/envelope_pb2.py +0 -0
  489. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/src/spark/connect/envelope_pb2.pyi +0 -0
  490. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/tools/snowpark-connect +0 -0
  491. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/tools/snowpark-session +0 -0
  492. {snowpark_connect-0.29.0 → snowpark_connect-0.30.1}/tools/snowpark-submit +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snowpark-connect
3
- Version: 0.29.0
3
+ Version: 0.30.1
4
4
  Summary: Snowpark Connect for Spark
5
5
  Author: Snowflake, Inc
6
6
  License: Apache License, Version 2.0
@@ -5,6 +5,9 @@
5
5
  import pyspark.sql.connect.proto.base_pb2 as proto_base
6
6
 
7
7
  from snowflake.snowpark_connect.relation.map_relation import map_relation
8
+ from snowflake.snowpark_connect.relation.read.metadata_utils import (
9
+ filter_metadata_columns,
10
+ )
8
11
  from snowflake.snowpark_connect.type_mapping import (
9
12
  SNOWPARK_TYPE_NAME_TO_PYSPARK_TYPE_NAME,
10
13
  )
@@ -16,12 +19,13 @@ def map_tree_string(
16
19
  # TODO: tracking the difference with pyspark in SNOW-1853347
17
20
  tree_string = request.tree_string
18
21
  snowpark_df_container = map_relation(tree_string.plan.root)
19
- snowpark_df = snowpark_df_container.dataframe
20
- column_map = snowpark_df_container.column_map
22
+ filtered_container = filter_metadata_columns(snowpark_df_container)
23
+ display_df = filtered_container.dataframe
24
+ filtered_column_mapping = filtered_container.column_map.snowpark_to_spark_map()
21
25
 
22
- snowpark_tree_string = snowpark_df._format_schema(
26
+ snowpark_tree_string = display_df._format_schema(
23
27
  level=tree_string.level if tree_string.HasField("level") else None,
24
- translate_columns=column_map.snowpark_to_spark_map(),
28
+ translate_columns=filtered_column_mapping,
25
29
  translate_types=SNOWPARK_TYPE_NAME_TO_PYSPARK_TYPE_NAME,
26
30
  )
27
31
  # workaround for the capitalization of nullable boolean value.
@@ -0,0 +1,65 @@
1
+ #
2
+ # Copyright (c) 2012-2025 Snowflake Computing Inc. All rights reserved.
3
+ #
4
+
5
+ import zlib
6
+
7
+ from pyspark.sql import DataFrame, SparkSession
8
+
9
+ SQL_PASS_THROUGH_MARKER = "PRIVATE-SNOWFLAKE-SQL"
10
+
11
+
12
+ def calculate_checksum(data: str) -> str:
13
+ checksum = zlib.crc32(data.encode("utf-8"))
14
+ return format(checksum, "08X")
15
+
16
+
17
+ class SnowflakeSession:
18
+ """
19
+ Provides a wrapper around SparkSession to enable Snowflake SQL pass-through functionality.
20
+ Also provides helper methods to switch to different database, schema, role, warehouse, etc.
21
+ """
22
+
23
+ def __init__(self, spark_session: SparkSession) -> None:
24
+ self.spark_session = spark_session
25
+
26
+ def sql(self, sql_stmt: str) -> DataFrame:
27
+ """
28
+ Execute Snowflake specific SQL directly against Snowflake.
29
+ """
30
+ checksum = calculate_checksum(sql_stmt)
31
+ return self.spark_session.sql(
32
+ f"{SQL_PASS_THROUGH_MARKER} {checksum} {sql_stmt}"
33
+ )
34
+
35
+ def use_database(self, database: str, preserve_case: bool = False) -> DataFrame:
36
+ """
37
+ Switch to the database specified by `database`.
38
+ """
39
+ if preserve_case:
40
+ database = f'"{database}"'
41
+ return self.sql(f"USE DATABASE {database}")
42
+
43
+ def use_schema(self, schema: str, preserve_case: bool = False) -> DataFrame:
44
+ """
45
+ Switch to the schema specified by `schema`.
46
+ """
47
+ if preserve_case:
48
+ schema = f'"{schema}"'
49
+ return self.sql(f"USE SCHEMA {schema}")
50
+
51
+ def use_role(self, role: str, preserve_case: bool = False) -> DataFrame:
52
+ """
53
+ Switch to the role specified by `role`.
54
+ """
55
+ if preserve_case:
56
+ role = f'"{role}"'
57
+ return self.sql(f"USE ROLE {role}")
58
+
59
+ def use_warehouse(self, warehouse: str, preserve_case: bool = False) -> DataFrame:
60
+ """
61
+ Switch to the warehouse specified by `warehouse`.
62
+ """
63
+ if preserve_case:
64
+ warehouse = f'"{warehouse}"'
65
+ return self.sql(f"USE WAREHOUSE {warehouse}")
@@ -75,7 +75,13 @@ def make_column_names_snowpark_compatible(
75
75
  In this case the function call should be `make_column_names_snowpark_compatible(['a', 'b'], 5, 2)`,
76
76
  to avoid naming conflicts between the new columns and the old columns.
77
77
  """
78
+ from snowflake.snowpark_connect.relation.read.metadata_utils import (
79
+ METADATA_FILENAME_COLUMN,
80
+ )
81
+
78
82
  return [
83
+ # Skip METADATA$FILENAME - preserve original name without quoting
84
+ name if name == METADATA_FILENAME_COLUMN else
79
85
  # Use `-` in the name to force df.column to return double-quoted names
80
86
  quote_name(f"{unquote_if_quoted(name)}-{plan_id:08x}-{i + offset}")
81
87
  for i, name in enumerate(names)
@@ -143,6 +143,9 @@ class GlobalConfig:
143
143
  # Control whether repartition(n) on a DataFrame forces splitting into n files during writes
144
144
  # This matches spark behavior more closely, but introduces overhead.
145
145
  "snowflake.repartition.for.writes": "false",
146
+ "snowpark.connect.structured_types.fix": str(
147
+ snowpark.context._enable_fix_2360274
148
+ ).lower(),
146
149
  }
147
150
 
148
151
  boolean_config_list = [
@@ -263,9 +266,10 @@ SESSION_CONFIG_KEY_WHITELIST = {
263
266
  "snowpark.connect.sql.identifiers.auto-uppercase",
264
267
  "snowpark.connect.udtf.compatibility_mode",
265
268
  "snowpark.connect.views.duplicate_column_names_handling_mode",
266
- "enable_snowflake_extension_behavior",
269
+ "snowpark.connect.enable_snowflake_extension_behavior",
267
270
  "spark.hadoop.fs.s3a.server-side-encryption.key",
268
271
  "spark.hadoop.fs.s3a.assumed.role.arn",
272
+ "snowpark.connect.describe_cache_ttl_seconds",
269
273
  }
270
274
  AZURE_ACCOUNT_KEY = re.compile(
271
275
  r"^fs\.azure\.sas\.[^\.]+\.[^\.]+\.blob\.core\.windows\.net$"
@@ -294,7 +298,8 @@ class SessionConfig:
294
298
  "snowpark.connect.views.duplicate_column_names_handling_mode": "rename",
295
299
  "spark.sql.execution.pythonUDTF.arrow.enabled": "false",
296
300
  "spark.sql.tvf.allowMultipleTableArguments.enabled": "true",
297
- "enable_snowflake_extension_behavior": "false",
301
+ "snowpark.connect.enable_snowflake_extension_behavior": "false",
302
+ "snowpark.connect.describe_cache_ttl_seconds": "300",
298
303
  }
299
304
 
300
305
  def __init__(self) -> None:
@@ -607,6 +612,21 @@ def get_cte_optimization_enabled() -> bool:
607
612
  return get_boolean_session_config_param("snowpark.connect.cte.optimization_enabled")
608
613
 
609
614
 
615
+ def get_describe_cache_ttl_seconds() -> int:
616
+ """Get the describe query cache TTL from session config, with a default fallback."""
617
+ session_config: SessionConfig = sessions_config[get_session_id()]
618
+ default_ttl: str = SessionConfig.default_session_config[
619
+ "snowpark.connect.describe_cache_ttl_seconds"
620
+ ]
621
+ try:
622
+ ttl_str = session_config.get(
623
+ "snowpark.connect.describe_cache_ttl_seconds", default_ttl
624
+ )
625
+ return int(ttl_str)
626
+ except ValueError: # fallback to default ttl
627
+ return int(default_ttl)
628
+
629
+
610
630
  def auto_uppercase_column_identifiers() -> bool:
611
631
  session_config = sessions_config[get_session_id()]
612
632
  return session_config[
@@ -710,7 +730,9 @@ def check_table_supports_operation(table_identifier: str, operation: str) -> boo
710
730
  session_id = get_session_id()
711
731
  session_config = sessions_config[session_id]
712
732
  enable_extensions = str_to_bool(
713
- session_config.get("enable_snowflake_extension_behavior", "false")
733
+ session_config.get(
734
+ "snowpark.connect.enable_snowflake_extension_behavior", "false"
735
+ )
714
736
  )
715
737
 
716
738
  if enable_extensions:
@@ -26,6 +26,9 @@ from snowflake.snowpark_connect.execute_plan.utils import (
26
26
  pandas_to_arrow_batches_bytes,
27
27
  )
28
28
  from snowflake.snowpark_connect.relation.map_relation import map_relation
29
+ from snowflake.snowpark_connect.relation.read.metadata_utils import (
30
+ filter_metadata_columns,
31
+ )
29
32
  from snowflake.snowpark_connect.type_mapping import (
30
33
  map_snowpark_types_to_pyarrow_types,
31
34
  snowpark_to_proto_type,
@@ -92,14 +95,19 @@ def map_execution_root(
92
95
  ) -> Iterator[proto_base.ExecutePlanResponse | QueryResult]:
93
96
  result: DataFrameContainer | pandas.DataFrame = map_relation(request.plan.root)
94
97
  if isinstance(result, pandas.DataFrame):
95
- result_df = result
98
+ pandas_df = result
99
+ data_bytes = pandas_to_arrow_batches_bytes(pandas_df)
100
+ row_count = len(pandas_df)
101
+ schema = None
102
+ yield _build_execute_plan_response(row_count, data_bytes, schema, request)
96
103
  else:
97
- result_df = result.dataframe
98
-
99
- if isinstance(result_df, snowpark.DataFrame):
100
- snowpark_schema = result_df.schema
101
- schema = snowpark_to_proto_type(snowpark_schema, result.column_map, result_df)
102
- spark_columns = result.column_map.get_spark_columns()
104
+ filtered_result = filter_metadata_columns(result)
105
+ filtered_result_df = filtered_result.dataframe
106
+ snowpark_schema = filtered_result_df.schema
107
+ schema = snowpark_to_proto_type(
108
+ snowpark_schema, filtered_result.column_map, filtered_result_df
109
+ )
110
+ spark_columns = filtered_result.column_map.get_spark_columns()
103
111
  if tcm.TCM_MODE:
104
112
  # TCM result handling:
105
113
  # - small result (only one batch): just return the executePlanResponse
@@ -108,22 +116,22 @@ def map_execution_root(
108
116
  is_large_result = False
109
117
  second_batch = False
110
118
  first_arrow_table = None
111
- with result_df.session.query_history() as qh:
112
- for arrow_table in to_arrow_batch_iter(result_df):
119
+ with filtered_result_df.session.query_history() as qh:
120
+ for arrow_table in to_arrow_batch_iter(filtered_result_df):
113
121
  if second_batch:
114
122
  is_large_result = True
115
123
  break
116
124
  first_arrow_table = arrow_table
117
125
  second_batch = True
118
126
  queries_cnt = len(
119
- result_df._plan.execution_queries[PlanQueryType.QUERIES]
127
+ filtered_result_df._plan.execution_queries[PlanQueryType.QUERIES]
120
128
  )
121
129
  # get query uuid from the last query; this may not be the last queries in query history because snowpark
122
130
  # may run some post action queries, e.g., drop temp table.
123
131
  query_id = qh.queries[queries_cnt - 1].query_id
124
132
  if first_arrow_table is None:
125
133
  # empty arrow batch iterator
126
- pandas_df = result_df.to_pandas()
134
+ pandas_df = filtered_result_df.to_pandas()
127
135
  data_bytes = pandas_to_arrow_batches_bytes(pandas_df)
128
136
  yield _build_execute_plan_response(0, data_bytes, schema, request)
129
137
  elif not tcm.TCM_RETURN_QUERY_ID_FOR_SMALL_RESULT and not is_large_result:
@@ -150,7 +158,7 @@ def map_execution_root(
150
158
  spark_schema.SerializeToString(),
151
159
  )
152
160
  else:
153
- arrow_table_iter = to_arrow_batch_iter(result_df)
161
+ arrow_table_iter = to_arrow_batch_iter(filtered_result_df)
154
162
  batch_count = 0
155
163
  for arrow_table in arrow_table_iter:
156
164
  if arrow_table.num_rows > 0:
@@ -166,12 +174,6 @@ def map_execution_root(
166
174
 
167
175
  # Empty result needs special processing
168
176
  if batch_count == 0:
169
- pandas_df = result_df.to_pandas()
177
+ pandas_df = filtered_result_df.to_pandas()
170
178
  data_bytes = pandas_to_arrow_batches_bytes(pandas_df)
171
179
  yield _build_execute_plan_response(0, data_bytes, schema, request)
172
- else:
173
- pandas_df = result_df
174
- data_bytes = pandas_to_arrow_batches_bytes(pandas_df)
175
- row_count = len(pandas_df)
176
- schema = None
177
- yield _build_execute_plan_response(row_count, data_bytes, schema, request)
@@ -0,0 +1,391 @@
1
+ #
2
+ # Copyright (c) 2012-2025 Snowflake Computing Inc. All rights reserved.
3
+ #
4
+
5
+ import pyspark.sql.connect.proto.expressions_pb2 as expressions_proto
6
+
7
+ import snowflake.snowpark.functions as snowpark_fn
8
+ import snowflake.snowpark_connect.proto.snowflake_expression_ext_pb2 as snowflake_proto
9
+ from snowflake.snowpark.types import (
10
+ BooleanType,
11
+ DayTimeIntervalType,
12
+ StringType,
13
+ YearMonthIntervalType,
14
+ )
15
+ from snowflake.snowpark_connect.column_name_handler import ColumnNameMap
16
+ from snowflake.snowpark_connect.expression.typer import ExpressionTyper
17
+ from snowflake.snowpark_connect.typed_column import TypedColumn
18
+ from snowflake.snowpark_connect.utils.context import (
19
+ push_evaluating_sql_scope,
20
+ push_outer_dataframe,
21
+ )
22
+ from snowflake.snowpark_connect.utils.telemetry import (
23
+ SnowparkConnectNotImplementedError,
24
+ )
25
+
26
+ # Formatting constants for interval display
27
+ _TWO_DIGIT_FORMAT = (
28
+ "{:02d}" # Zero-padded 2-digit format for hours, minutes, and whole seconds
29
+ )
30
+ _THREE_DIGIT_FORMAT = (
31
+ "{:03d}" # Zero-padded 3-digit format for hours/minutes and whole seconds
32
+ )
33
+ _SECONDS_PRECISION_FORMAT = (
34
+ "{:09.6f}" # 6 decimal places with leading zeros for seconds
35
+ )
36
+
37
+
38
+ def _format_time_component(value: int, is_negative: bool = False) -> str:
39
+ """Format a time component (hours, minutes, whole seconds) with proper zero-padding."""
40
+ if is_negative:
41
+ return _THREE_DIGIT_FORMAT.format(value)
42
+ else:
43
+ return _TWO_DIGIT_FORMAT.format(value)
44
+
45
+
46
+ def _format_seconds_precise(seconds: float) -> str:
47
+ """Format seconds with full precision, stripping trailing zeros."""
48
+ return _SECONDS_PRECISION_FORMAT.format(seconds).rstrip("0").rstrip(".")
49
+
50
+
51
+ def map_extension(
52
+ exp: expressions_proto.Expression,
53
+ column_mapping: ColumnNameMap,
54
+ typer: ExpressionTyper,
55
+ ) -> tuple[list[str], TypedColumn]:
56
+ """
57
+ The Extension relation type contains any extensions we use for adding new
58
+ functionality to Spark Connect.
59
+
60
+ The extension will require new protobuf messages to be defined in the
61
+ snowflake_connect_server/proto directory.
62
+ """
63
+ extension = snowflake_proto.ExpExtension()
64
+ exp.extension.Unpack(extension)
65
+ match extension.WhichOneof("op"):
66
+ case "named_argument":
67
+ from snowflake.snowpark_connect.expression.map_expression import (
68
+ map_expression,
69
+ )
70
+
71
+ named_argument = extension.named_argument
72
+ key = named_argument.key
73
+ value = named_argument.value
74
+
75
+ exp_name, typed_col = map_expression(value, column_mapping, typer)
76
+ if value.HasField("literal"):
77
+ name = key
78
+ elif value.HasField("unresolved_attribute"):
79
+ name = "__" + key + "__" + exp_name[0]
80
+ else:
81
+ raise SnowparkConnectNotImplementedError(
82
+ "Named argument not supported yet for this input."
83
+ )
84
+ return [name], typed_col
85
+
86
+ case "interval_literal":
87
+ interval_ext = extension.interval_literal
88
+ literal = interval_ext.literal
89
+ start_field = (
90
+ interval_ext.start_field
91
+ if interval_ext.HasField("start_field")
92
+ else None
93
+ )
94
+ end_field = (
95
+ interval_ext.end_field if interval_ext.HasField("end_field") else None
96
+ )
97
+
98
+ # Format interval with proper context-aware formatting
99
+ if literal.HasField("year_month_interval"):
100
+ total_months = literal.year_month_interval
101
+ lit_value, lit_name = _format_year_month_interval(
102
+ total_months, start_field, end_field
103
+ )
104
+ if start_field is not None and end_field is not None:
105
+ interval_data_type = YearMonthIntervalType(start_field, end_field)
106
+ else:
107
+ interval_data_type = YearMonthIntervalType()
108
+
109
+ # Create column using SQL expression with context-aware formatting
110
+ col = snowpark_fn.sql_expr(lit_value)
111
+
112
+ elif literal.HasField("day_time_interval"):
113
+ total_microseconds = literal.day_time_interval
114
+ lit_value, lit_name = _format_day_time_interval(
115
+ total_microseconds, start_field, end_field
116
+ )
117
+ if start_field is not None and end_field is not None:
118
+ interval_data_type = DayTimeIntervalType(start_field, end_field)
119
+ else:
120
+ interval_data_type = DayTimeIntervalType()
121
+
122
+ # Create column using SQL expression to get proper interval type (same as year-month)
123
+ col = snowpark_fn.sql_expr(lit_value)
124
+
125
+ else:
126
+ # Fallback - shouldn't happen
127
+ lit_value = str(literal)
128
+ lit_name = str(literal)
129
+ interval_data_type = StringType()
130
+ col = snowpark_fn.lit(lit_value)
131
+
132
+ typed_col = TypedColumn(col, lambda: [interval_data_type])
133
+
134
+ return [lit_name], typed_col
135
+
136
+ case "subquery_expression":
137
+ from snowflake.snowpark_connect.dataframe_container import (
138
+ DataFrameContainer,
139
+ )
140
+ from snowflake.snowpark_connect.expression.map_expression import (
141
+ map_expression,
142
+ )
143
+ from snowflake.snowpark_connect.relation.map_relation import map_relation
144
+
145
+ current_outer_df = DataFrameContainer(
146
+ dataframe=typer.df, column_map=column_mapping
147
+ )
148
+
149
+ with push_evaluating_sql_scope(), push_outer_dataframe(current_outer_df):
150
+ df_container = map_relation(extension.subquery_expression.input)
151
+ df = df_container.dataframe
152
+
153
+ queries = df.queries["queries"]
154
+ if len(queries) != 1:
155
+ raise SnowparkConnectNotImplementedError(
156
+ f"Unexpected number of queries: {len(queries)}"
157
+ )
158
+ query = f"({queries[0]})"
159
+
160
+ match extension.subquery_expression.subquery_type:
161
+ case snowflake_proto.SubqueryExpression.SUBQUERY_TYPE_SCALAR:
162
+ name = "scalarsubquery()"
163
+ result_exp = snowpark_fn.expr(query)
164
+ result_type = df.schema[0].datatype
165
+ case snowflake_proto.SubqueryExpression.SUBQUERY_TYPE_EXISTS:
166
+ name = "exists()"
167
+ result_exp = snowpark_fn.expr(f"(EXISTS {query})")
168
+ result_type = BooleanType()
169
+ case snowflake_proto.SubqueryExpression.SUBQUERY_TYPE_TABLE_ARG:
170
+ # TODO: Currently, map_sql.py handles this, so we never end up here.
171
+ raise SnowparkConnectNotImplementedError("Unexpected table arg")
172
+ case snowflake_proto.SubqueryExpression.SUBQUERY_TYPE_IN:
173
+ cols = [
174
+ map_expression(e, column_mapping, typer)
175
+ for e in extension.subquery_expression.in_subquery_values
176
+ ]
177
+ col_names_str = ", ".join(
178
+ col_name for col_names, _ in cols for col_name in col_names
179
+ )
180
+ # TODO: Figure out how to make a named_struct(...) here to match Spark.
181
+ name = f"({col_names_str}) in (listquery())"
182
+ result_exp = snowpark_fn.in_(
183
+ [col.col for _, col in cols], snowpark_fn.expr(query)
184
+ )
185
+ result_type = BooleanType()
186
+ case other:
187
+ raise SnowparkConnectNotImplementedError(
188
+ f"Unexpected subquery type: {other}"
189
+ )
190
+
191
+ return [name], TypedColumn(result_exp, lambda: [result_type])
192
+
193
+ case other:
194
+ raise SnowparkConnectNotImplementedError(f"Unexpected extension {other}")
195
+
196
+
197
+ def _format_year_month_interval(
198
+ total_months: int, start_field: int | None, end_field: int | None
199
+ ) -> tuple[str, str]:
200
+ """Format year-month interval with context-aware precision."""
201
+
202
+ # Calculate years and months from absolute value
203
+ is_negative = total_months < 0
204
+ abs_months = abs(total_months)
205
+ years = abs_months // 12
206
+ months = abs_months % 12
207
+
208
+ # Determine interval type
209
+ is_year_only = (
210
+ start_field == YearMonthIntervalType.YEAR
211
+ and end_field == YearMonthIntervalType.YEAR
212
+ )
213
+ is_month_only = (
214
+ start_field == YearMonthIntervalType.MONTH
215
+ and end_field == YearMonthIntervalType.MONTH
216
+ )
217
+
218
+ # Format based on type and sign
219
+ if is_year_only:
220
+ sign = "-" if is_negative else ""
221
+ str_value = f"INTERVAL '{sign}{years}' YEAR"
222
+ elif is_month_only:
223
+ str_value = f"INTERVAL '{total_months}' MONTH" # Keep original sign
224
+ else: # YEAR TO MONTH (default)
225
+ if is_negative:
226
+ str_value = f"INTERVAL '-{years}-{months}' YEAR TO MONTH"
227
+ else:
228
+ str_value = f"INTERVAL '{years}-{months}' YEAR TO MONTH"
229
+
230
+ return str_value, str_value
231
+
232
+
233
+ def _format_day_time_interval(
234
+ total_microseconds: int, start_field: int | None, end_field: int | None
235
+ ) -> tuple[str, str]:
236
+ """Format day-time interval with context-aware precision."""
237
+ total_seconds = total_microseconds / 1_000_000
238
+
239
+ # Handle negative intervals correctly
240
+ is_negative = total_seconds < 0
241
+
242
+ # Work with integer microseconds to preserve precision
243
+ abs_total_microseconds = abs(total_microseconds)
244
+
245
+ # Convert to components using integer arithmetic
246
+ days = int(abs_total_microseconds // (86400 * 1_000_000))
247
+ remaining_microseconds = abs_total_microseconds % (86400 * 1_000_000)
248
+ hours = int(remaining_microseconds // (3600 * 1_000_000))
249
+ remaining_microseconds = remaining_microseconds % (3600 * 1_000_000)
250
+ minutes = int(remaining_microseconds // (60 * 1_000_000))
251
+ remaining_microseconds = remaining_microseconds % (60 * 1_000_000)
252
+
253
+ # Convert final microseconds to seconds with full precision
254
+ seconds = remaining_microseconds / 1_000_000
255
+
256
+ # Apply negative sign back to days if needed
257
+ if is_negative:
258
+ days = -days
259
+
260
+ # Format based on the specific start/end field context
261
+ if (
262
+ start_field == DayTimeIntervalType.DAY and end_field == DayTimeIntervalType.DAY
263
+ ): # DAY only
264
+ str_value = f"INTERVAL '{days}' DAY"
265
+ elif (
266
+ start_field == DayTimeIntervalType.HOUR
267
+ and end_field == DayTimeIntervalType.HOUR
268
+ ): # HOUR only
269
+ # For HOUR-only intervals, calculate total hours (don't break down into days)
270
+ total_hours = int(abs(total_microseconds) // (3600 * 1_000_000))
271
+ if total_microseconds < 0:
272
+ total_hours = -total_hours
273
+ if total_hours >= 0:
274
+ str_value = f"INTERVAL '{_TWO_DIGIT_FORMAT.format(total_hours)}' HOUR"
275
+ else:
276
+ str_value = f"INTERVAL '{_THREE_DIGIT_FORMAT.format(total_hours)}' HOUR"
277
+ elif (
278
+ start_field == DayTimeIntervalType.MINUTE
279
+ and end_field == DayTimeIntervalType.MINUTE
280
+ ): # MINUTE only
281
+ # For MINUTE-only intervals, calculate total minutes (don't break down into hours/days)
282
+ total_minutes = int(abs(total_microseconds) // (60 * 1_000_000))
283
+ if total_microseconds < 0:
284
+ total_minutes = -total_minutes
285
+ if total_minutes >= 0:
286
+ str_value = f"INTERVAL '{_TWO_DIGIT_FORMAT.format(total_minutes)}' MINUTE"
287
+ else:
288
+ str_value = f"INTERVAL '{_THREE_DIGIT_FORMAT.format(total_minutes)}' MINUTE"
289
+ elif (
290
+ start_field == DayTimeIntervalType.SECOND
291
+ and end_field == DayTimeIntervalType.SECOND
292
+ ): # SECOND only
293
+ # For SECOND-only intervals, use total seconds (don't break down into minutes/hours/days)
294
+ total_seconds_precise = total_microseconds / 1_000_000
295
+ if total_seconds_precise == int(total_seconds_precise):
296
+ if total_seconds_precise >= 0:
297
+ str_value = f"INTERVAL '{_TWO_DIGIT_FORMAT.format(int(total_seconds_precise))}' SECOND"
298
+ else:
299
+ str_value = f"INTERVAL '{_THREE_DIGIT_FORMAT.format(int(total_seconds_precise))}' SECOND"
300
+ else:
301
+ seconds_str = _format_seconds_precise(total_seconds_precise)
302
+ str_value = f"INTERVAL '{seconds_str}' SECOND"
303
+ elif (
304
+ start_field == DayTimeIntervalType.MINUTE
305
+ and end_field == DayTimeIntervalType.SECOND
306
+ ): # MINUTE TO SECOND
307
+ # For MINUTE TO SECOND intervals, calculate total minutes and remaining seconds
308
+ total_minutes = int(abs_total_microseconds // (60 * 1_000_000))
309
+ remaining_microseconds_for_minutes = abs_total_microseconds % (60 * 1_000_000)
310
+ remaining_seconds_for_minutes = remaining_microseconds_for_minutes / 1_000_000
311
+
312
+ # Format seconds appropriately (whole or fractional)
313
+ if remaining_seconds_for_minutes == int(remaining_seconds_for_minutes):
314
+ seconds_str = _TWO_DIGIT_FORMAT.format(int(remaining_seconds_for_minutes))
315
+ else:
316
+ seconds_str = _format_seconds_precise(remaining_seconds_for_minutes)
317
+
318
+ # Apply sign and format
319
+ if is_negative:
320
+ str_value = f"INTERVAL '-{_TWO_DIGIT_FORMAT.format(total_minutes)}:{seconds_str}' MINUTE TO SECOND"
321
+ else:
322
+ str_value = f"INTERVAL '{_TWO_DIGIT_FORMAT.format(total_minutes)}:{seconds_str}' MINUTE TO SECOND"
323
+ elif (
324
+ start_field == DayTimeIntervalType.HOUR
325
+ and end_field == DayTimeIntervalType.MINUTE
326
+ ): # HOUR TO MINUTE
327
+ str_value = f"INTERVAL '{_TWO_DIGIT_FORMAT.format(hours)}:{_TWO_DIGIT_FORMAT.format(minutes)}' HOUR TO MINUTE"
328
+ elif (
329
+ start_field == DayTimeIntervalType.HOUR
330
+ and end_field == DayTimeIntervalType.SECOND
331
+ ): # HOUR TO SECOND
332
+ if seconds == int(seconds):
333
+ str_value = f"INTERVAL '{_format_time_component(hours)}:{_format_time_component(minutes)}:{_format_time_component(int(seconds))}' HOUR TO SECOND"
334
+ else:
335
+ seconds_str = _format_seconds_precise(seconds)
336
+ str_value = f"INTERVAL '{_format_time_component(hours)}:{_format_time_component(minutes)}:{seconds_str}' HOUR TO SECOND"
337
+ elif (
338
+ start_field == DayTimeIntervalType.DAY and end_field == DayTimeIntervalType.HOUR
339
+ ): # DAY TO HOUR
340
+ str_value = f"INTERVAL '{days} {_format_time_component(hours)}' DAY TO HOUR"
341
+ elif (
342
+ start_field == DayTimeIntervalType.DAY
343
+ and end_field == DayTimeIntervalType.MINUTE
344
+ ): # DAY TO MINUTE
345
+ str_value = f"INTERVAL '{days} {_format_time_component(hours)}:{_format_time_component(minutes)}' DAY TO MINUTE"
346
+ elif (
347
+ start_field == DayTimeIntervalType.DAY
348
+ and end_field == DayTimeIntervalType.SECOND
349
+ ): # DAY TO SECOND
350
+ if seconds == int(seconds):
351
+ str_value = f"INTERVAL '{days} {_format_time_component(hours)}:{_format_time_component(minutes)}:{_format_time_component(int(seconds))}' DAY TO SECOND"
352
+ else:
353
+ seconds_str = _format_seconds_precise(seconds)
354
+ str_value = f"INTERVAL '{days} {_format_time_component(hours)}:{_format_time_component(minutes)}:{seconds_str}' DAY TO SECOND"
355
+ else:
356
+ # Fallback - use smart formatting like the original literal.py logic
357
+ if days > 0:
358
+ if hours == 0 and minutes == 0 and seconds == 0:
359
+ str_value = f"INTERVAL '{int(days)}' DAY"
360
+ else:
361
+ if seconds == int(seconds):
362
+ str_value = f"INTERVAL '{days} {_format_time_component(hours)}:{_format_time_component(minutes)}:{_format_time_component(int(seconds))}' DAY TO SECOND"
363
+ else:
364
+ seconds_str = _format_seconds_precise(seconds)
365
+ str_value = f"INTERVAL '{days} {_format_time_component(hours)}:{_format_time_component(minutes)}:{seconds_str}' DAY TO SECOND"
366
+ elif hours > 0:
367
+ if minutes == 0 and seconds == 0:
368
+ str_value = f"INTERVAL '{_format_time_component(hours)}' HOUR"
369
+ else:
370
+ if seconds == int(seconds):
371
+ str_value = f"INTERVAL '{_format_time_component(hours)}:{_format_time_component(minutes)}:{_format_time_component(int(seconds))}' HOUR TO SECOND"
372
+ else:
373
+ seconds_str = _format_seconds_precise(seconds)
374
+ str_value = f"INTERVAL '{_format_time_component(hours)}:{_format_time_component(minutes)}:{seconds_str}' HOUR TO SECOND"
375
+ elif minutes > 0:
376
+ if seconds == 0:
377
+ str_value = f"INTERVAL '{_format_time_component(minutes)}' MINUTE"
378
+ else:
379
+ if seconds == int(seconds):
380
+ str_value = f"INTERVAL '{_format_time_component(minutes)}:{_format_time_component(int(seconds))}' MINUTE TO SECOND"
381
+ else:
382
+ seconds_str = _format_seconds_precise(seconds)
383
+ str_value = f"INTERVAL '{_format_time_component(minutes)}:{seconds_str}' MINUTE TO SECOND"
384
+ else:
385
+ if seconds == int(seconds):
386
+ str_value = f"INTERVAL '{_format_time_component(int(seconds))}' SECOND"
387
+ else:
388
+ seconds_str = _format_seconds_precise(seconds)
389
+ str_value = f"INTERVAL '{seconds_str}' SECOND"
390
+
391
+ return str_value, str_value