sqlframe 3.43.4__tar.gz → 3.43.6__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.
Files changed (390) hide show
  1. {sqlframe-3.43.4 → sqlframe-3.43.6}/PKG-INFO +1 -1
  2. {sqlframe-3.43.4 → sqlframe-3.43.6}/docs/bigquery.md +4 -4
  3. {sqlframe-3.43.4 → sqlframe-3.43.6}/docs/databricks.md +4 -4
  4. {sqlframe-3.43.4 → sqlframe-3.43.6}/docs/duckdb.md +4 -3
  5. {sqlframe-3.43.4 → sqlframe-3.43.6}/docs/postgres.md +4 -4
  6. {sqlframe-3.43.4 → sqlframe-3.43.6}/docs/redshift.md +2 -2
  7. {sqlframe-3.43.4 → sqlframe-3.43.6}/docs/snowflake.md +5 -5
  8. {sqlframe-3.43.4 → sqlframe-3.43.6}/setup.py +1 -1
  9. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/_version.py +3 -3
  10. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/base/dataframe.py +21 -5
  11. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/base/functions.py +5 -5
  12. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/base/operations.py +1 -1
  13. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/base/util.py +1 -1
  14. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/databricks/readwriter.py +1 -1
  15. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/duckdb/session.py +6 -5
  16. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe.egg-info/PKG-INFO +1 -1
  17. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe.egg-info/requires.txt +1 -1
  18. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/duck/test_duckdb_dataframe.py +21 -0
  19. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/test_int_functions.py +1 -1
  20. {sqlframe-3.43.4 → sqlframe-3.43.6}/.github/CODEOWNERS +0 -0
  21. {sqlframe-3.43.4 → sqlframe-3.43.6}/.github/workflows/main.workflow.yaml +0 -0
  22. {sqlframe-3.43.4 → sqlframe-3.43.6}/.github/workflows/publish.workflow.yaml +0 -0
  23. {sqlframe-3.43.4 → sqlframe-3.43.6}/.gitignore +0 -0
  24. {sqlframe-3.43.4 → sqlframe-3.43.6}/.pre-commit-config.yaml +0 -0
  25. {sqlframe-3.43.4 → sqlframe-3.43.6}/.readthedocs.yaml +0 -0
  26. {sqlframe-3.43.4 → sqlframe-3.43.6}/LICENSE +0 -0
  27. {sqlframe-3.43.4 → sqlframe-3.43.6}/Makefile +0 -0
  28. {sqlframe-3.43.4 → sqlframe-3.43.6}/README.md +0 -0
  29. {sqlframe-3.43.4 → sqlframe-3.43.6}/blogs/add_chatgpt_support.md +0 -0
  30. {sqlframe-3.43.4 → sqlframe-3.43.6}/blogs/images/add_chatgpt_support/adding_ai_to_meal.jpeg +0 -0
  31. {sqlframe-3.43.4 → sqlframe-3.43.6}/blogs/images/add_chatgpt_support/hype_train.gif +0 -0
  32. {sqlframe-3.43.4 → sqlframe-3.43.6}/blogs/images/add_chatgpt_support/marvin_paranoid_robot.gif +0 -0
  33. {sqlframe-3.43.4 → sqlframe-3.43.6}/blogs/images/add_chatgpt_support/nonsense_sql.png +0 -0
  34. {sqlframe-3.43.4 → sqlframe-3.43.6}/blogs/images/add_chatgpt_support/openai_full_rewrite.png +0 -0
  35. {sqlframe-3.43.4 → sqlframe-3.43.6}/blogs/images/add_chatgpt_support/openai_replacing_cte_names.png +0 -0
  36. {sqlframe-3.43.4 → sqlframe-3.43.6}/blogs/images/add_chatgpt_support/sqlglot_optimized_code.png +0 -0
  37. {sqlframe-3.43.4 → sqlframe-3.43.6}/blogs/images/add_chatgpt_support/sunny_shake_head_no.gif +0 -0
  38. {sqlframe-3.43.4 → sqlframe-3.43.6}/blogs/images/but_wait_theres_more.gif +0 -0
  39. {sqlframe-3.43.4 → sqlframe-3.43.6}/blogs/images/cake.gif +0 -0
  40. {sqlframe-3.43.4 → sqlframe-3.43.6}/blogs/images/you_get_pyspark_api.gif +0 -0
  41. {sqlframe-3.43.4 → sqlframe-3.43.6}/blogs/sqlframe_universal_dataframe_api.md +0 -0
  42. {sqlframe-3.43.4 → sqlframe-3.43.6}/docs/configuration.md +0 -0
  43. {sqlframe-3.43.4 → sqlframe-3.43.6}/docs/docs/bigquery.md +0 -0
  44. {sqlframe-3.43.4 → sqlframe-3.43.6}/docs/docs/duckdb.md +0 -0
  45. {sqlframe-3.43.4 → sqlframe-3.43.6}/docs/docs/images/SF.png +0 -0
  46. {sqlframe-3.43.4 → sqlframe-3.43.6}/docs/docs/images/favicon.png +0 -0
  47. {sqlframe-3.43.4 → sqlframe-3.43.6}/docs/docs/images/sqlframe_logo.png +0 -0
  48. {sqlframe-3.43.4 → sqlframe-3.43.6}/docs/docs/postgres.md +0 -0
  49. {sqlframe-3.43.4 → sqlframe-3.43.6}/docs/images/SF.png +0 -0
  50. {sqlframe-3.43.4 → sqlframe-3.43.6}/docs/images/favicon.png +0 -0
  51. {sqlframe-3.43.4 → sqlframe-3.43.6}/docs/images/sqlframe_logo.png +0 -0
  52. {sqlframe-3.43.4 → sqlframe-3.43.6}/docs/index.md +0 -0
  53. {sqlframe-3.43.4 → sqlframe-3.43.6}/docs/requirements.txt +0 -0
  54. {sqlframe-3.43.4 → sqlframe-3.43.6}/docs/spark.md +0 -0
  55. {sqlframe-3.43.4 → sqlframe-3.43.6}/docs/standalone.md +0 -0
  56. {sqlframe-3.43.4 → sqlframe-3.43.6}/docs/stylesheets/extra.css +0 -0
  57. {sqlframe-3.43.4 → sqlframe-3.43.6}/mkdocs.yml +0 -0
  58. {sqlframe-3.43.4 → sqlframe-3.43.6}/mypy.ini +0 -0
  59. {sqlframe-3.43.4 → sqlframe-3.43.6}/pytest.ini +0 -0
  60. {sqlframe-3.43.4 → sqlframe-3.43.6}/renovate.json +0 -0
  61. {sqlframe-3.43.4 → sqlframe-3.43.6}/setup.cfg +0 -0
  62. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/LICENSE +0 -0
  63. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/__init__.py +0 -0
  64. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/base/__init__.py +0 -0
  65. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/base/_typing.py +0 -0
  66. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/base/catalog.py +0 -0
  67. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/base/column.py +0 -0
  68. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/base/decorators.py +0 -0
  69. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/base/exceptions.py +0 -0
  70. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/base/function_alternatives.py +0 -0
  71. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/base/group.py +0 -0
  72. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/base/mixins/__init__.py +0 -0
  73. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/base/mixins/catalog_mixins.py +0 -0
  74. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/base/mixins/dataframe_mixins.py +0 -0
  75. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/base/mixins/readwriter_mixins.py +0 -0
  76. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/base/mixins/table_mixins.py +0 -0
  77. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/base/normalize.py +0 -0
  78. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/base/readerwriter.py +0 -0
  79. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/base/session.py +0 -0
  80. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/base/table.py +0 -0
  81. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/base/transforms.py +0 -0
  82. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/base/types.py +0 -0
  83. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/base/udf.py +0 -0
  84. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/base/window.py +0 -0
  85. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/bigquery/__init__.py +0 -0
  86. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/bigquery/catalog.py +0 -0
  87. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/bigquery/column.py +0 -0
  88. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/bigquery/dataframe.py +0 -0
  89. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/bigquery/functions.py +0 -0
  90. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/bigquery/functions.pyi +0 -0
  91. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/bigquery/group.py +0 -0
  92. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/bigquery/readwriter.py +0 -0
  93. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/bigquery/session.py +0 -0
  94. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/bigquery/table.py +0 -0
  95. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/bigquery/types.py +0 -0
  96. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/bigquery/udf.py +0 -0
  97. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/bigquery/window.py +0 -0
  98. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/databricks/__init__.py +0 -0
  99. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/databricks/catalog.py +0 -0
  100. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/databricks/column.py +0 -0
  101. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/databricks/dataframe.py +0 -0
  102. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/databricks/functions.py +0 -0
  103. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/databricks/functions.pyi +0 -0
  104. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/databricks/group.py +0 -0
  105. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/databricks/session.py +0 -0
  106. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/databricks/table.py +0 -0
  107. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/databricks/types.py +0 -0
  108. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/databricks/udf.py +0 -0
  109. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/databricks/window.py +0 -0
  110. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/duckdb/__init__.py +0 -0
  111. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/duckdb/catalog.py +0 -0
  112. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/duckdb/column.py +0 -0
  113. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/duckdb/dataframe.py +0 -0
  114. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/duckdb/functions.py +0 -0
  115. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/duckdb/functions.pyi +0 -0
  116. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/duckdb/group.py +0 -0
  117. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/duckdb/readwriter.py +0 -0
  118. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/duckdb/table.py +0 -0
  119. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/duckdb/types.py +0 -0
  120. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/duckdb/udf.py +0 -0
  121. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/duckdb/window.py +0 -0
  122. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/postgres/__init__.py +0 -0
  123. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/postgres/catalog.py +0 -0
  124. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/postgres/column.py +0 -0
  125. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/postgres/dataframe.py +0 -0
  126. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/postgres/functions.py +0 -0
  127. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/postgres/functions.pyi +0 -0
  128. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/postgres/group.py +0 -0
  129. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/postgres/readwriter.py +0 -0
  130. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/postgres/session.py +0 -0
  131. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/postgres/table.py +0 -0
  132. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/postgres/types.py +0 -0
  133. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/postgres/udf.py +0 -0
  134. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/postgres/window.py +0 -0
  135. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/py.typed +0 -0
  136. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/redshift/__init__.py +0 -0
  137. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/redshift/catalog.py +0 -0
  138. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/redshift/column.py +0 -0
  139. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/redshift/dataframe.py +0 -0
  140. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/redshift/functions.py +0 -0
  141. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/redshift/group.py +0 -0
  142. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/redshift/readwriter.py +0 -0
  143. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/redshift/session.py +0 -0
  144. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/redshift/table.py +0 -0
  145. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/redshift/types.py +0 -0
  146. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/redshift/udf.py +0 -0
  147. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/redshift/window.py +0 -0
  148. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/snowflake/__init__.py +0 -0
  149. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/snowflake/catalog.py +0 -0
  150. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/snowflake/column.py +0 -0
  151. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/snowflake/dataframe.py +0 -0
  152. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/snowflake/functions.py +0 -0
  153. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/snowflake/functions.pyi +0 -0
  154. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/snowflake/group.py +0 -0
  155. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/snowflake/readwriter.py +0 -0
  156. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/snowflake/session.py +0 -0
  157. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/snowflake/table.py +0 -0
  158. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/snowflake/types.py +0 -0
  159. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/snowflake/udf.py +0 -0
  160. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/snowflake/window.py +0 -0
  161. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/spark/__init__.py +0 -0
  162. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/spark/catalog.py +0 -0
  163. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/spark/column.py +0 -0
  164. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/spark/dataframe.py +0 -0
  165. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/spark/functions.py +0 -0
  166. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/spark/functions.pyi +0 -0
  167. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/spark/group.py +0 -0
  168. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/spark/readwriter.py +0 -0
  169. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/spark/session.py +0 -0
  170. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/spark/table.py +0 -0
  171. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/spark/types.py +0 -0
  172. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/spark/udf.py +0 -0
  173. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/spark/window.py +0 -0
  174. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/standalone/__init__.py +0 -0
  175. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/standalone/catalog.py +0 -0
  176. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/standalone/column.py +0 -0
  177. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/standalone/dataframe.py +0 -0
  178. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/standalone/functions.py +0 -0
  179. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/standalone/group.py +0 -0
  180. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/standalone/readwriter.py +0 -0
  181. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/standalone/session.py +0 -0
  182. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/standalone/table.py +0 -0
  183. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/standalone/types.py +0 -0
  184. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/standalone/udf.py +0 -0
  185. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/standalone/window.py +0 -0
  186. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/testing/__init__.py +0 -0
  187. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe/testing/utils.py +0 -0
  188. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe.egg-info/SOURCES.txt +0 -0
  189. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe.egg-info/dependency_links.txt +0 -0
  190. {sqlframe-3.43.4 → sqlframe-3.43.6}/sqlframe.egg-info/top_level.txt +0 -0
  191. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/__init__.py +0 -0
  192. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/common_fixtures.py +0 -0
  193. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/conftest.py +0 -0
  194. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/employee.csv +0 -0
  195. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/employee.json +0 -0
  196. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/employee.parquet +0 -0
  197. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/employee_delta/.part-00000-e5965c7b-e58f-4d3c-ad56-002876814e3a-c000.snappy.parquet.crc +0 -0
  198. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/employee_delta/.part-00002-3fed7f18-370f-4b16-b232-504d6194eb52-c000.snappy.parquet.crc +0 -0
  199. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/employee_delta/.part-00004-143c5da1-d5ab-4706-8e84-0d2a324c6894-c000.snappy.parquet.crc +0 -0
  200. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/employee_delta/.part-00006-64f07e25-c30e-4075-acc6-b3c69c4ce80b-c000.snappy.parquet.crc +0 -0
  201. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/employee_delta/.part-00008-89ccad8d-df73-4ad5-8850-82ef3884db60-c000.snappy.parquet.crc +0 -0
  202. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/employee_delta/.part-00010-812b3382-8c7f-4c4e-9bcd-09ce8664f6e0-c000.snappy.parquet.crc +0 -0
  203. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/employee_delta/_delta_log/.00000000000000000000.json.crc +0 -0
  204. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/employee_delta/_delta_log/00000000000000000000.json +0 -0
  205. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/employee_delta/part-00000-e5965c7b-e58f-4d3c-ad56-002876814e3a-c000.snappy.parquet +0 -0
  206. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/employee_delta/part-00002-3fed7f18-370f-4b16-b232-504d6194eb52-c000.snappy.parquet +0 -0
  207. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/employee_delta/part-00004-143c5da1-d5ab-4706-8e84-0d2a324c6894-c000.snappy.parquet +0 -0
  208. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/employee_delta/part-00006-64f07e25-c30e-4075-acc6-b3c69c4ce80b-c000.snappy.parquet +0 -0
  209. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/employee_delta/part-00008-89ccad8d-df73-4ad5-8850-82ef3884db60-c000.snappy.parquet +0 -0
  210. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/employee_delta/part-00010-812b3382-8c7f-4c4e-9bcd-09ce8664f6e0-c000.snappy.parquet +0 -0
  211. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/employee_extra_line.csv +0 -0
  212. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/issue_219.csv +0 -0
  213. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/netflix_daily_top_10.parquet +0 -0
  214. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds1.sql +0 -0
  215. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds10.sql +0 -0
  216. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds11.sql +0 -0
  217. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds12.sql +0 -0
  218. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds13.sql +0 -0
  219. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds14.sql +0 -0
  220. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds15.sql +0 -0
  221. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds16.sql +0 -0
  222. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds17.sql +0 -0
  223. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds18.sql +0 -0
  224. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds19.sql +0 -0
  225. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds2.sql +0 -0
  226. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds20.sql +0 -0
  227. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds21.sql +0 -0
  228. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds22.sql +0 -0
  229. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds23.sql +0 -0
  230. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds24.sql +0 -0
  231. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds25.sql +0 -0
  232. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds26.sql +0 -0
  233. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds27.sql +0 -0
  234. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds28.sql +0 -0
  235. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds29.sql +0 -0
  236. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds3.sql +0 -0
  237. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds30.sql +0 -0
  238. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds31.sql +0 -0
  239. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds32.sql +0 -0
  240. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds33.sql +0 -0
  241. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds34.sql +0 -0
  242. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds35.sql +0 -0
  243. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds36.sql +0 -0
  244. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds37.sql +0 -0
  245. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds38.sql +0 -0
  246. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds39.sql +0 -0
  247. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds4.sql +0 -0
  248. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds40.sql +0 -0
  249. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds41.sql +0 -0
  250. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds42.sql +0 -0
  251. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds43.sql +0 -0
  252. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds44.sql +0 -0
  253. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds45.sql +0 -0
  254. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds46.sql +0 -0
  255. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds47.sql +0 -0
  256. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds48.sql +0 -0
  257. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds49.sql +0 -0
  258. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds5.sql +0 -0
  259. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds50.sql +0 -0
  260. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds51.sql +0 -0
  261. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds52.sql +0 -0
  262. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds53.sql +0 -0
  263. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds54.sql +0 -0
  264. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds55.sql +0 -0
  265. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds56.sql +0 -0
  266. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds57.sql +0 -0
  267. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds58.sql +0 -0
  268. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds59.sql +0 -0
  269. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds6.sql +0 -0
  270. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds60.sql +0 -0
  271. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds61.sql +0 -0
  272. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds62.sql +0 -0
  273. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds63.sql +0 -0
  274. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds64.sql +0 -0
  275. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds65.sql +0 -0
  276. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds66.sql +0 -0
  277. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds67.sql +0 -0
  278. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds68.sql +0 -0
  279. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds69.sql +0 -0
  280. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds7.sql +0 -0
  281. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds70.sql +0 -0
  282. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds71.sql +0 -0
  283. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds72.sql +0 -0
  284. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds73.sql +0 -0
  285. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds74.sql +0 -0
  286. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds75.sql +0 -0
  287. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds76.sql +0 -0
  288. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds77.sql +0 -0
  289. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds78.sql +0 -0
  290. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds79.sql +0 -0
  291. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds8.sql +0 -0
  292. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds80.sql +0 -0
  293. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds81.sql +0 -0
  294. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds82.sql +0 -0
  295. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds83.sql +0 -0
  296. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds84.sql +0 -0
  297. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds85.sql +0 -0
  298. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds86.sql +0 -0
  299. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds87.sql +0 -0
  300. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds88.sql +0 -0
  301. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds89.sql +0 -0
  302. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds9.sql +0 -0
  303. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds90.sql +0 -0
  304. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds91.sql +0 -0
  305. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds92.sql +0 -0
  306. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds93.sql +0 -0
  307. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds94.sql +0 -0
  308. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds95.sql +0 -0
  309. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds96.sql +0 -0
  310. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds97.sql +0 -0
  311. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds98.sql +0 -0
  312. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/fixtures/tpcds/tpcds99.sql +0 -0
  313. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/__init__.py +0 -0
  314. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/__init__.py +0 -0
  315. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/bigquery/__init__.py +0 -0
  316. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/bigquery/test_bigquery_catalog.py +0 -0
  317. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/bigquery/test_bigquery_dataframe.py +0 -0
  318. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/bigquery/test_bigquery_session.py +0 -0
  319. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/databricks/__init__.py +0 -0
  320. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/databricks/test_databricks_catalog.py +0 -0
  321. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/databricks/test_databricks_dataframe.py +0 -0
  322. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/databricks/test_databricks_session.py +0 -0
  323. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/duck/__init__.py +0 -0
  324. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/duck/test_duckdb_activate.py +0 -0
  325. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/duck/test_duckdb_catalog.py +0 -0
  326. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/duck/test_duckdb_reader.py +0 -0
  327. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/duck/test_duckdb_session.py +0 -0
  328. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/duck/test_duckdb_udf.py +0 -0
  329. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/duck/test_tpcds.py +0 -0
  330. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/postgres/__init__.py +0 -0
  331. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/postgres/test_postgres_activate.py +0 -0
  332. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/postgres/test_postgres_catalog.py +0 -0
  333. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/postgres/test_postgres_dataframe.py +0 -0
  334. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/postgres/test_postgres_session.py +0 -0
  335. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/redshift/__init__.py +0 -0
  336. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/redshift/test_redshift_catalog.py +0 -0
  337. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/redshift/test_redshift_session.py +0 -0
  338. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/snowflake/__init__.py +0 -0
  339. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/snowflake/test_snowflake_catalog.py +0 -0
  340. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/snowflake/test_snowflake_dataframe.py +0 -0
  341. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/snowflake/test_snowflake_session.py +0 -0
  342. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/spark/__init__.py +0 -0
  343. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/spark/test_spark_catalog.py +0 -0
  344. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/spark/test_spark_dataframe.py +0 -0
  345. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/test_engine_column.py +0 -0
  346. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/test_engine_dataframe.py +0 -0
  347. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/test_engine_reader.py +0 -0
  348. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/test_engine_session.py +0 -0
  349. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/test_engine_table.py +0 -0
  350. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/test_engine_writer.py +0 -0
  351. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/engines/test_int_testing.py +0 -0
  352. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/fixtures.py +0 -0
  353. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/test_int_dataframe.py +0 -0
  354. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/test_int_dataframe_stats.py +0 -0
  355. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/test_int_grouped_data.py +0 -0
  356. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/integration/test_int_session.py +0 -0
  357. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/types.py +0 -0
  358. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/__init__.py +0 -0
  359. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/bigquery/__init__.py +0 -0
  360. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/bigquery/test_activate.py +0 -0
  361. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/conftest.py +0 -0
  362. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/databricks/__init__.py +0 -0
  363. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/databricks/test_activate.py +0 -0
  364. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/duck/__init__.py +0 -0
  365. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/duck/test_activate.py +0 -0
  366. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/duck/test_reader_options.py +0 -0
  367. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/postgres/__init__.py +0 -0
  368. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/postgres/test_activate.py +0 -0
  369. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/redshift/__init__.py +0 -0
  370. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/redshift/test_activate.py +0 -0
  371. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/snowflake/__init__.py +0 -0
  372. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/snowflake/test_activate.py +0 -0
  373. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/spark/__init__.py +0 -0
  374. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/spark/test_activate.py +0 -0
  375. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/spark/test_reader_options.py +0 -0
  376. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/standalone/__init__.py +0 -0
  377. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/standalone/fixtures.py +0 -0
  378. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/standalone/test_activate.py +0 -0
  379. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/standalone/test_column.py +0 -0
  380. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/standalone/test_dataframe.py +0 -0
  381. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/standalone/test_dataframe_writer.py +0 -0
  382. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/standalone/test_functions.py +0 -0
  383. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/standalone/test_session.py +0 -0
  384. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/standalone/test_session_case_sensitivity.py +0 -0
  385. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/standalone/test_types.py +0 -0
  386. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/standalone/test_window.py +0 -0
  387. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/test_activate.py +0 -0
  388. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/test_base_reader_options.py +0 -0
  389. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/test_catalog.py +0 -0
  390. {sqlframe-3.43.4 → sqlframe-3.43.6}/tests/unit/test_util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sqlframe
3
- Version: 3.43.4
3
+ Version: 3.43.6
4
4
  Summary: Turning PySpark Into a Universal DataFrame API
5
5
  Home-page: https://github.com/eakmanrq/sqlframe
6
6
  Author: Ryan Eakman
@@ -684,7 +684,7 @@ update_expr = table_employee.update(
684
684
  where=table_employee["id"] == 1,
685
685
  )
686
686
 
687
- # Excecutes the update statement
687
+ # Executes the update statement
688
688
  update_expr.execute()
689
689
 
690
690
  # Show the result
@@ -712,7 +712,7 @@ delete_expr = table_employee.delete(
712
712
  where=table_employee["id"] == 1,
713
713
  )
714
714
 
715
- # Excecutes the delete statement
715
+ # Executes the delete statement
716
716
  delete_expr.execute()
717
717
 
718
718
  # Show the result
@@ -767,7 +767,7 @@ merge_expr = table_employee.merge(
767
767
  ],
768
768
  )
769
769
 
770
- # Excecutes the merge statement
770
+ # Executes the merge statement
771
771
  merge_expr.execute()
772
772
 
773
773
  # Show the result
@@ -823,7 +823,7 @@ merge_expr = table_employee.merge(
823
823
  ],
824
824
  )
825
825
 
826
- # Excecutes the merge statement
826
+ # Executes the merge statement
827
827
  merge_expr.execute()
828
828
 
829
829
  # Show the result
@@ -227,7 +227,7 @@ update_expr = table_employee.update(
227
227
  where=table_employee["id"] == 1,
228
228
  )
229
229
 
230
- # Excecutes the update statement
230
+ # Executes the update statement
231
231
  update_expr.execute()
232
232
 
233
233
  # Show the result
@@ -255,7 +255,7 @@ delete_expr = table_employee.delete(
255
255
  where=table_employee["id"] == 1,
256
256
  )
257
257
 
258
- # Excecutes the delete statement
258
+ # Executes the delete statement
259
259
  delete_expr.execute()
260
260
 
261
261
  # Show the result
@@ -310,7 +310,7 @@ merge_expr = table_employee.merge(
310
310
  ],
311
311
  )
312
312
 
313
- # Excecutes the merge statement
313
+ # Executes the merge statement
314
314
  merge_expr.execute()
315
315
 
316
316
  # Show the result
@@ -366,7 +366,7 @@ merge_expr = table_employee.merge(
366
366
  ],
367
367
  )
368
368
 
369
- # Excecutes the merge statement
369
+ # Executes the merge statement
370
370
  merge_expr.execute()
371
371
 
372
372
  # Show the result
@@ -250,7 +250,7 @@ See something that you would like to see supported? [Open an issue](https://gith
250
250
  * SQLFrame Specific: Get the SQL representation of the WindowSpec
251
251
  * [stat](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.stat.html)
252
252
  * [toArrow](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.toArrow.html)
253
- * SQLFrame Specific Argument: `batch_size` sets the number of rows to read per-batch and returns a `RecrodBatchReader`
253
+ * SQLFrame Specific Argument: `batch_size` sets the number of rows to read per-batch and returns a `RecordBatchReader`
254
254
  * [toDF](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.toDF.html)
255
255
  * [toPandas](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.toPandas.html)
256
256
  * [union](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.union.html)
@@ -478,6 +478,7 @@ See something that you would like to see supported? [Open an issue](https://gith
478
478
  * [sumDistinct](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.sumDistinct.html)
479
479
  * [sum_distinct](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.sum_distinct.html)
480
480
  * [tan](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.tan.html)
481
+ * [tanh](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.tanh.html)
481
482
  * [timestamp_add](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.timestamp_add.html)
482
483
  * [timestamp_seconds](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.timestamp_seconds.html)
483
484
  * [toDegrees](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.toDegrees.html)
@@ -634,7 +635,7 @@ update_expr = table_employee.update(
634
635
  where=table_employee["id"] == 1,
635
636
  )
636
637
 
637
- # Excecutes the update statement
638
+ # Executes the update statement
638
639
  update_expr.execute()
639
640
 
640
641
  # Show the result
@@ -662,7 +663,7 @@ delete_expr = table_employee.delete(
662
663
  where=table_employee["id"] == 1,
663
664
  )
664
665
 
665
- # Excecutes the delete statement
666
+ # Executes the delete statement
666
667
  delete_expr.execute()
667
668
 
668
669
  # Show the result
@@ -621,7 +621,7 @@ update_expr = table_employee.update(
621
621
  where=table_employee["id"] == 1,
622
622
  )
623
623
 
624
- # Excecutes the update statement
624
+ # Executes the update statement
625
625
  update_expr.execute()
626
626
 
627
627
  # Show the result
@@ -649,7 +649,7 @@ delete_expr = table_employee.delete(
649
649
  where=table_employee["id"] == 1,
650
650
  )
651
651
 
652
- # Excecutes the delete statement
652
+ # Executes the delete statement
653
653
  delete_expr.execute()
654
654
 
655
655
  # Show the result
@@ -704,7 +704,7 @@ merge_expr = table_employee.merge(
704
704
  ],
705
705
  )
706
706
 
707
- # Excecutes the merge statement
707
+ # Executes the merge statement
708
708
  merge_expr.execute()
709
709
 
710
710
  # Show the result
@@ -760,7 +760,7 @@ merge_expr = table_employee.merge(
760
760
  ],
761
761
  )
762
762
 
763
- # Excecutes the merge statement
763
+ # Executes the merge statement
764
764
  merge_expr.execute()
765
765
 
766
766
  # Show the result
@@ -209,7 +209,7 @@ update_expr = table_employee.update(
209
209
  where=table_employee["id"] == 1,
210
210
  )
211
211
 
212
- # Excecutes the update statement
212
+ # Executes the update statement
213
213
  update_expr.execute()
214
214
 
215
215
  # Show the result
@@ -237,7 +237,7 @@ delete_expr = table_employee.delete(
237
237
  where=table_employee["id"] == 1,
238
238
  )
239
239
 
240
- # Excecutes the delete statement
240
+ # Executes the delete statement
241
241
  delete_expr.execute()
242
242
 
243
243
  # Show the result
@@ -309,7 +309,7 @@ See something that you would like to see supported? [Open an issue](https://gith
309
309
  * [array_except](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.array_except.html)
310
310
  * [array_intersect](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.array_intersect.html)
311
311
  * [array_join](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.array_join.html)
312
- * Null values are repsented as nothing instead of NULL. Ex: "a," instead of "a,NULL"
312
+ * Null values are represented as nothing instead of NULL. Ex: "a," instead of "a,NULL"
313
313
  * [array_max](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.array_max.html)
314
314
  * [array_min](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.array_min.html)
315
315
  * [array_position](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.array_position.html)
@@ -335,7 +335,7 @@ See something that you would like to see supported? [Open an issue](https://gith
335
335
  * [bool_and](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.bool_and.html)
336
336
  * [bool_or](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.bool_or.html)
337
337
  * [bround](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.bround.html)
338
- * [Input must be a fixed-point nnumber](https://docs.snowflake.com/en/sql-reference/data-types-numeric.html#label-data-types-for-fixed-point-numbers)
338
+ * [Input must be a fixed-point number](https://docs.snowflake.com/en/sql-reference/data-types-numeric.html#label-data-types-for-fixed-point-numbers)
339
339
  * [btrim](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.btrim.html)
340
340
  * [call_function](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.call_function.html)
341
341
  * [cbrt](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.cbrt.html)
@@ -677,7 +677,7 @@ update_expr = table_employee.update(
677
677
  where=table_employee["id"] == 1,
678
678
  )
679
679
 
680
- # Excecutes the update statement
680
+ # Executes the update statement
681
681
  update_expr.execute()
682
682
 
683
683
  # Show the result
@@ -705,7 +705,7 @@ delete_expr = table_employee.delete(
705
705
  where=table_employee["id"] == 1,
706
706
  )
707
707
 
708
- # Excecutes the delete statement
708
+ # Executes the delete statement
709
709
  delete_expr.execute()
710
710
 
711
711
  # Show the result
@@ -760,7 +760,7 @@ merge_expr = table_employee.merge(
760
760
  ],
761
761
  )
762
762
 
763
- # Excecutes the merge statement
763
+ # Executes the merge statement
764
764
  merge_expr.execute()
765
765
 
766
766
  # Show the result
@@ -20,7 +20,7 @@ setup(
20
20
  python_requires=">=3.9",
21
21
  install_requires=[
22
22
  "prettytable<4",
23
- "sqlglot>=24.0.0,<27.22",
23
+ "sqlglot>=24.0.0,<27.27",
24
24
  "typing_extensions",
25
25
  "more-itertools",
26
26
  ],
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '3.43.4'
32
- __version_tuple__ = version_tuple = (3, 43, 4)
31
+ __version__ = version = '3.43.6'
32
+ __version_tuple__ = version_tuple = (3, 43, 6)
33
33
 
34
- __commit_id__ = commit_id = 'g4171ad4a5'
34
+ __commit_id__ = commit_id = 'g7c6cd19ef'
@@ -361,15 +361,31 @@ class BaseDataFrame(t.Generic[SESSION, WRITER, NA, STAT, GROUP_DATA]):
361
361
 
362
362
  def _replace_cte_names_with_hashes(self, expression: exp.Select):
363
363
  replacement_mapping = {}
364
- for cte in expression.ctes:
364
+ seen_hashes: t.Dict[str, exp.Identifier] = {}
365
+ cte_indices_to_remove = []
366
+
367
+ for i, cte in enumerate(expression.ctes):
365
368
  old_name_id = cte.args["alias"].this
366
- new_hashed_id = exp.to_identifier(
367
- self._create_hash_from_expression(cte.this), quoted=old_name_id.args["quoted"]
368
- )
369
- replacement_mapping[old_name_id] = new_hashed_id
369
+ cte_hash = self._create_hash_from_expression(cte.this)
370
+
371
+ if cte_hash in seen_hashes:
372
+ # Duplicate CTE found - map its old name to the existing hash
373
+ replacement_mapping[old_name_id] = seen_hashes[cte_hash]
374
+ cte_indices_to_remove.append(i)
375
+ else:
376
+ # New unique CTE - process normally
377
+ new_hashed_id = exp.to_identifier(cte_hash, quoted=old_name_id.args["quoted"])
378
+ seen_hashes[cte_hash] = new_hashed_id
379
+ replacement_mapping[old_name_id] = new_hashed_id
380
+
370
381
  expression = expression.transform(replace_id_value, replacement_mapping).assert_is(
371
382
  exp.Select
372
383
  )
384
+
385
+ # Remove duplicate CTEs by index in reverse order to avoid index shifting
386
+ for idx in reversed(cte_indices_to_remove):
387
+ del expression.args["with"].expressions[idx]
388
+
373
389
  return expression
374
390
 
375
391
  def _create_cte_from_expression(
@@ -309,7 +309,7 @@ def factorial(col: ColumnOrName) -> Column:
309
309
  if session._is_bigquery:
310
310
  return factorial_from_case_statement(col)
311
311
 
312
- return Column.invoke_anonymous_function(col, "FACTORIAL")
312
+ return Column.invoke_expression_over_column(col, expression.Factorial)
313
313
 
314
314
 
315
315
  @meta()
@@ -385,9 +385,9 @@ def tan(col: ColumnOrName) -> Column:
385
385
  return Column.invoke_expression_over_column(col, expression.Tan)
386
386
 
387
387
 
388
- @meta(unsupported_engines="duckdb")
388
+ @meta()
389
389
  def tanh(col: ColumnOrName) -> Column:
390
- return Column.invoke_anonymous_function(col, "TANH")
390
+ return Column.invoke_expression_over_column(col, expression.Tanh)
391
391
 
392
392
 
393
393
  @meta()
@@ -4886,7 +4886,7 @@ def parse_url(
4886
4886
  )
4887
4887
 
4888
4888
 
4889
- @meta(unsupported_engines="*")
4889
+ @meta(unsupported_engines=["bigquery", "snowflake"])
4890
4890
  def pi() -> Column:
4891
4891
  """Returns Pi.
4892
4892
 
@@ -4901,7 +4901,7 @@ def pi() -> Column:
4901
4901
  |3.141592653589793|
4902
4902
  +-----------------+
4903
4903
  """
4904
- return Column.invoke_anonymous_function(None, "pi")
4904
+ return Column.invoke_expression_over_column(None, expression.Pi)
4905
4905
 
4906
4906
 
4907
4907
  @meta(unsupported_engines="*")
@@ -78,7 +78,7 @@ def operation(
78
78
 
79
79
  # Here decorate a function (self: _BaseGroupedData[DF], *args, **kwargs) -> DF
80
80
  # Hence we work with t.Callable[Concatenate[_BaseGroupedData[DF], P], DF]
81
- # We simplify the parameters, as Pyright (used for VSCode autocomplete) doesn't unterstand this
81
+ # We simplify the parameters, as Pyright (used for VSCode autocomplete) doesn't understand this
82
82
  def group_operation(
83
83
  op: Operation,
84
84
  ) -> t.Callable[[t.Callable[P, DF]], t.Callable[P, DF]]:
@@ -239,7 +239,7 @@ def soundex(s):
239
239
  result = [s[0]]
240
240
  count = 1
241
241
 
242
- # find would-be replacment for first character
242
+ # find would-be replacement for first character
243
243
  for lset, sub in replacements:
244
244
  if s[0] in lset:
245
245
  last = sub
@@ -231,7 +231,7 @@ class DatabricksDataFrameWriter(
231
231
  elif mode == "ignore":
232
232
  pass
233
233
  else:
234
- raise RuntimeError(f"Unssuported mode: {mode}")
234
+ raise RuntimeError(f"Unsupported mode: {mode}")
235
235
 
236
236
  def insertInto(
237
237
  self,
@@ -7,10 +7,7 @@ from sqlframe.base.session import _BaseSession
7
7
  from sqlframe.base.util import soundex
8
8
  from sqlframe.duckdb.catalog import DuckDBCatalog
9
9
  from sqlframe.duckdb.dataframe import DuckDBDataFrame
10
- from sqlframe.duckdb.readwriter import (
11
- DuckDBDataFrameReader,
12
- DuckDBDataFrameWriter,
13
- )
10
+ from sqlframe.duckdb.readwriter import DuckDBDataFrameReader, DuckDBDataFrameWriter
14
11
  from sqlframe.duckdb.table import DuckDBTable
15
12
  from sqlframe.duckdb.udf import DuckDBUDFRegistration
16
13
 
@@ -42,7 +39,11 @@ class DuckDBSession(
42
39
  def __init__(self, conn: t.Optional[DuckDBPyConnection] = None, *args, **kwargs):
43
40
  import duckdb
44
41
  from duckdb import InvalidInputException
45
- from duckdb.typing import VARCHAR
42
+
43
+ try: # Available from duckdb 1.4.1
44
+ from duckdb.sqltypes import VARCHAR
45
+ except ImportError:
46
+ from duckdb.typing import VARCHAR
46
47
 
47
48
  if not hasattr(self, "_conn"):
48
49
  conn = conn or duckdb.connect()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sqlframe
3
- Version: 3.43.4
3
+ Version: 3.43.6
4
4
  Summary: Turning PySpark Into a Universal DataFrame API
5
5
  Home-page: https://github.com/eakmanrq/sqlframe
6
6
  Author: Ryan Eakman
@@ -1,6 +1,6 @@
1
1
  more-itertools
2
2
  prettytable<4
3
- sqlglot<27.22,>=24.0.0
3
+ sqlglot<27.27,>=24.0.0
4
4
  typing_extensions
5
5
 
6
6
  [bigquery]
@@ -4,6 +4,7 @@ import pytest
4
4
 
5
5
  from sqlframe.base import types
6
6
  from sqlframe.duckdb import DuckDBDataFrame, DuckDBSession
7
+ from sqlframe.duckdb import functions as F
7
8
 
8
9
  pytest_plugins = ["tests.integration.fixtures"]
9
10
 
@@ -266,3 +267,23 @@ def test_explain(duckdb_employee: DuckDBDataFrame, capsys):
266
267
  └───────────────────────────┘
267
268
  """.strip()
268
269
  )
270
+
271
+
272
+ def test_duplicate_cte(duckdb_session: DuckDBSession):
273
+ con = duckdb_session._conn
274
+
275
+ con.execute("CREATE VIEW foo AS SELECT 'a' as key, 1 as idx")
276
+ con.execute("CREATE VIEW bar AS SELECT 'b' as key, 2 as smth")
277
+
278
+ foo = duckdb_session.table("foo").filter(F.col("idx") == 1)
279
+ bar = duckdb_session.table("bar").filter(F.col("smth") == 2)
280
+
281
+ df = foo.join(bar, "key", "left")
282
+
283
+ df = df.unionByName(df)
284
+
285
+ results = duckdb_session._collect(expressions=df._get_expressions(optimize=True))
286
+ assert results == [
287
+ types.Row(key="a", idx=1, smth=None),
288
+ types.Row(key="a", idx=1, smth=None),
289
+ ]
@@ -4424,7 +4424,7 @@ def test_parse_url(get_session_and_func, get_func):
4424
4424
 
4425
4425
  def test_pi(get_session_and_func, get_func):
4426
4426
  session, pi = get_session_and_func("pi")
4427
- assert session.range(1).select(pi()).first()[0] == math.pi
4427
+ assert session.range(1).select(pi()).first()[0] in (math.pi, 3.141592654)
4428
4428
 
4429
4429
 
4430
4430
  def test_pmod(get_session_and_func, get_func):
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes