sqlglot 27.24.2.dev0__tar.gz → 27.25.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 sqlglot might be problematic. Click here for more details.

Files changed (228) hide show
  1. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/CHANGELOG.md +32 -0
  2. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/PKG-INFO +1 -1
  3. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/_version.py +3 -3
  4. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/snowflake.py +5 -0
  5. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/expressions.py +4 -0
  6. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/parser.py +2 -1
  7. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot.egg-info/PKG-INFO +1 -1
  8. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_dialect.py +20 -0
  9. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_snowflake.py +7 -0
  10. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/annotate_functions.sql +36 -0
  11. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/.gitignore +0 -0
  12. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/.gitpod.yml +0 -0
  13. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/.pre-commit-config.yaml +0 -0
  14. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/CONTRIBUTING.md +0 -0
  15. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/LICENSE +0 -0
  16. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/MANIFEST.in +0 -0
  17. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/Makefile +0 -0
  18. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/README.md +0 -0
  19. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/pyproject.toml +0 -0
  20. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/setup.cfg +0 -0
  21. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/setup.py +0 -0
  22. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/__init__.py +0 -0
  23. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/__main__.py +0 -0
  24. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/_typing.py +0 -0
  25. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/__init__.py +0 -0
  26. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/athena.py +0 -0
  27. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/bigquery.py +0 -0
  28. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/clickhouse.py +0 -0
  29. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/databricks.py +0 -0
  30. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/dialect.py +0 -0
  31. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/doris.py +0 -0
  32. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/dremio.py +0 -0
  33. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/drill.py +0 -0
  34. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/druid.py +0 -0
  35. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/duckdb.py +0 -0
  36. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/dune.py +0 -0
  37. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/exasol.py +0 -0
  38. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/fabric.py +0 -0
  39. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/hive.py +0 -0
  40. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/materialize.py +0 -0
  41. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/mysql.py +0 -0
  42. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/oracle.py +0 -0
  43. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/postgres.py +0 -0
  44. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/presto.py +0 -0
  45. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/prql.py +0 -0
  46. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/redshift.py +0 -0
  47. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/risingwave.py +0 -0
  48. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/singlestore.py +0 -0
  49. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/solr.py +0 -0
  50. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/spark.py +0 -0
  51. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/spark2.py +0 -0
  52. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/sqlite.py +0 -0
  53. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/starrocks.py +0 -0
  54. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/tableau.py +0 -0
  55. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/teradata.py +0 -0
  56. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/trino.py +0 -0
  57. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/dialects/tsql.py +0 -0
  58. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/diff.py +0 -0
  59. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/errors.py +0 -0
  60. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/executor/__init__.py +0 -0
  61. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/executor/context.py +0 -0
  62. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/executor/env.py +0 -0
  63. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/executor/python.py +0 -0
  64. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/executor/table.py +0 -0
  65. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/generator.py +0 -0
  66. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/helper.py +0 -0
  67. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/jsonpath.py +0 -0
  68. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/lineage.py +0 -0
  69. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/optimizer/__init__.py +0 -0
  70. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/optimizer/annotate_types.py +0 -0
  71. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/optimizer/canonicalize.py +0 -0
  72. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/optimizer/eliminate_ctes.py +0 -0
  73. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/optimizer/eliminate_joins.py +0 -0
  74. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/optimizer/eliminate_subqueries.py +0 -0
  75. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/optimizer/isolate_table_selects.py +0 -0
  76. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/optimizer/merge_subqueries.py +0 -0
  77. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/optimizer/normalize.py +0 -0
  78. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/optimizer/normalize_identifiers.py +0 -0
  79. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/optimizer/optimize_joins.py +0 -0
  80. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/optimizer/optimizer.py +0 -0
  81. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/optimizer/pushdown_predicates.py +0 -0
  82. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/optimizer/pushdown_projections.py +0 -0
  83. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/optimizer/qualify.py +0 -0
  84. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/optimizer/qualify_columns.py +0 -0
  85. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/optimizer/qualify_tables.py +0 -0
  86. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/optimizer/scope.py +0 -0
  87. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/optimizer/simplify.py +0 -0
  88. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/optimizer/unnest_subqueries.py +0 -0
  89. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/planner.py +0 -0
  90. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/py.typed +0 -0
  91. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/schema.py +0 -0
  92. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/serde.py +0 -0
  93. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/time.py +0 -0
  94. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/tokens.py +0 -0
  95. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/transforms.py +0 -0
  96. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot/trie.py +0 -0
  97. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot.egg-info/SOURCES.txt +0 -0
  98. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot.egg-info/dependency_links.txt +0 -0
  99. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot.egg-info/requires.txt +0 -0
  100. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot.egg-info/top_level.txt +0 -0
  101. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglot.png +0 -0
  102. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglotrs/Cargo.lock +0 -0
  103. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglotrs/Cargo.toml +0 -0
  104. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglotrs/benches/dialect_settings.json +0 -0
  105. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglotrs/benches/long.rs +0 -0
  106. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglotrs/benches/token_type_settings.json +0 -0
  107. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglotrs/benches/tokenizer_dialect_settings.json +0 -0
  108. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglotrs/benches/tokenizer_settings.json +0 -0
  109. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglotrs/pyproject.toml +0 -0
  110. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglotrs/src/lib.rs +0 -0
  111. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglotrs/src/settings.rs +0 -0
  112. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglotrs/src/token.rs +0 -0
  113. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglotrs/src/tokenizer.rs +0 -0
  114. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/sqlglotrs/src/trie.rs +0 -0
  115. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/__init__.py +0 -0
  116. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/__init__.py +0 -0
  117. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_athena.py +0 -0
  118. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_bigquery.py +0 -0
  119. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_clickhouse.py +0 -0
  120. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_databricks.py +0 -0
  121. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_doris.py +0 -0
  122. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_dremio.py +0 -0
  123. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_drill.py +0 -0
  124. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_druid.py +0 -0
  125. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_duckdb.py +0 -0
  126. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_dune.py +0 -0
  127. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_exasol.py +0 -0
  128. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_fabric.py +0 -0
  129. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_hive.py +0 -0
  130. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_materialize.py +0 -0
  131. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_mysql.py +0 -0
  132. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_oracle.py +0 -0
  133. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_pipe_syntax.py +0 -0
  134. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_postgres.py +0 -0
  135. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_presto.py +0 -0
  136. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_prql.py +0 -0
  137. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_redshift.py +0 -0
  138. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_risingwave.py +0 -0
  139. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_singlestore.py +0 -0
  140. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_solr.py +0 -0
  141. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_spark.py +0 -0
  142. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_sqlite.py +0 -0
  143. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_starrocks.py +0 -0
  144. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_tableau.py +0 -0
  145. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_teradata.py +0 -0
  146. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_trino.py +0 -0
  147. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/dialects/test_tsql.py +0 -0
  148. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/identity.sql +0 -0
  149. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/jsonpath/LICENSE +0 -0
  150. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/jsonpath/cts.json +0 -0
  151. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/annotate_types.sql +0 -0
  152. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/canonicalize.sql +0 -0
  153. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/eliminate_ctes.sql +0 -0
  154. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/eliminate_joins.sql +0 -0
  155. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/eliminate_subqueries.sql +0 -0
  156. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/isolate_table_selects.sql +0 -0
  157. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/merge_subqueries.sql +0 -0
  158. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/normalize.sql +0 -0
  159. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/normalize_identifiers.sql +0 -0
  160. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/optimize_joins.sql +0 -0
  161. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/optimizer.sql +0 -0
  162. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/pushdown_cte_alias_columns.sql +0 -0
  163. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/pushdown_predicates.sql +0 -0
  164. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/pushdown_projections.sql +0 -0
  165. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/qualify_columns.sql +0 -0
  166. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/qualify_columns__invalid.sql +0 -0
  167. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/qualify_columns__with_invisible.sql +0 -0
  168. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/qualify_columns_ddl.sql +0 -0
  169. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/qualify_tables.sql +0 -0
  170. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/quote_identifiers.sql +0 -0
  171. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/simplify.sql +0 -0
  172. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-ds/call_center.csv.gz +0 -0
  173. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-ds/catalog_page.csv.gz +0 -0
  174. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-ds/catalog_returns.csv.gz +0 -0
  175. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-ds/catalog_sales.csv.gz +0 -0
  176. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-ds/customer.csv.gz +0 -0
  177. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-ds/customer_address.csv.gz +0 -0
  178. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-ds/customer_demographics.csv.gz +0 -0
  179. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-ds/date_dim.csv.gz +0 -0
  180. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-ds/household_demographics.csv.gz +0 -0
  181. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-ds/income_band.csv.gz +0 -0
  182. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-ds/inventory.csv.gz +0 -0
  183. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-ds/item.csv.gz +0 -0
  184. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-ds/promotion.csv.gz +0 -0
  185. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-ds/reason.csv.gz +0 -0
  186. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-ds/ship_mode.csv.gz +0 -0
  187. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-ds/store.csv.gz +0 -0
  188. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-ds/store_returns.csv.gz +0 -0
  189. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-ds/store_sales.csv.gz +0 -0
  190. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-ds/time_dim.csv.gz +0 -0
  191. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-ds/tpc-ds.sql +0 -0
  192. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-ds/warehouse.csv.gz +0 -0
  193. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-ds/web_page.csv.gz +0 -0
  194. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-ds/web_returns.csv.gz +0 -0
  195. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-ds/web_sales.csv.gz +0 -0
  196. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-ds/web_site.csv.gz +0 -0
  197. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-h/customer.csv.gz +0 -0
  198. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-h/lineitem.csv.gz +0 -0
  199. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-h/nation.csv.gz +0 -0
  200. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-h/orders.csv.gz +0 -0
  201. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-h/part.csv.gz +0 -0
  202. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-h/partsupp.csv.gz +0 -0
  203. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-h/region.csv.gz +0 -0
  204. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-h/supplier.csv.gz +0 -0
  205. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/tpc-h/tpc-h.sql +0 -0
  206. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/optimizer/unnest_subqueries.sql +0 -0
  207. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/partial.sql +0 -0
  208. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/fixtures/pretty.sql +0 -0
  209. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/gen_fixtures.py +0 -0
  210. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/helpers.py +0 -0
  211. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/test_build.py +0 -0
  212. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/test_dialect_imports.py +0 -0
  213. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/test_diff.py +0 -0
  214. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/test_docs.py +0 -0
  215. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/test_executor.py +0 -0
  216. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/test_expressions.py +0 -0
  217. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/test_generator.py +0 -0
  218. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/test_helper.py +0 -0
  219. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/test_jsonpath.py +0 -0
  220. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/test_lineage.py +0 -0
  221. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/test_optimizer.py +0 -0
  222. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/test_parser.py +0 -0
  223. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/test_schema.py +0 -0
  224. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/test_serde.py +0 -0
  225. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/test_time.py +0 -0
  226. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/test_tokens.py +0 -0
  227. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/test_transforms.py +0 -0
  228. {sqlglot-27.24.2.dev0 → sqlglot-27.25.1}/tests/test_transpile.py +0 -0
@@ -1,6 +1,37 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ ## [v27.25.0] - 2025-10-09
5
+ ### :boom: BREAKING CHANGES
6
+ - due to [`6f31b86`](https://github.com/tobymao/sqlglot/commit/6f31b86599258afe156aa3d9ccc42389cac37021) - Annotate type for snowflake FLOOR function *(PR [#6030](https://github.com/tobymao/sqlglot/pull/6030) by [@fivetran-amrutabhimsenayachit](https://github.com/fivetran-amrutabhimsenayachit))*:
7
+
8
+ Annotate type for snowflake FLOOR function (#6030)
9
+
10
+ - due to [`cecab2f`](https://github.com/tobymao/sqlglot/commit/cecab2fd66d578ddc765b5fd0e7b155971280a0c) - annotate type for Snowflake ATANH function *(PR [#6054](https://github.com/tobymao/sqlglot/pull/6054) by [@fivetran-BradfordPaskewitz](https://github.com/fivetran-BradfordPaskewitz))*:
11
+
12
+ annotate type for Snowflake ATANH function (#6054)
13
+
14
+ - due to [`08339a9`](https://github.com/tobymao/sqlglot/commit/08339a902138211f67cfb009d2576b22ea8d8e42) - annotate type for Snowflake FACTORIAL function *(PR [#6053](https://github.com/tobymao/sqlglot/pull/6053) by [@fivetran-BradfordPaskewitz](https://github.com/fivetran-BradfordPaskewitz))*:
15
+
16
+ annotate type for Snowflake FACTORIAL function (#6053)
17
+
18
+
19
+ ### :sparkles: New Features
20
+ - [`6f31b86`](https://github.com/tobymao/sqlglot/commit/6f31b86599258afe156aa3d9ccc42389cac37021) - **optimizer**: Annotate type for snowflake FLOOR function *(PR [#6030](https://github.com/tobymao/sqlglot/pull/6030) by [@fivetran-amrutabhimsenayachit](https://github.com/fivetran-amrutabhimsenayachit))*
21
+ - [`b7463d5`](https://github.com/tobymao/sqlglot/commit/b7463d5b0a1e286498d7ccfd9a07ef7edfa80bb2) - **optimizer**: Annotate type for snowflake ASIN function. *(PR [#6049](https://github.com/tobymao/sqlglot/pull/6049) by [@fivetran-amrutabhimsenayachit](https://github.com/fivetran-amrutabhimsenayachit))*
22
+ - [`fe959a5`](https://github.com/tobymao/sqlglot/commit/fe959a5598508526ed5910a4c62372116b5d3c30) - **optimizer**: Annotate type for snowflake CBRT function *(PR [#6050](https://github.com/tobymao/sqlglot/pull/6050) by [@fivetran-amrutabhimsenayachit](https://github.com/fivetran-amrutabhimsenayachit))*
23
+ - [`cecab2f`](https://github.com/tobymao/sqlglot/commit/cecab2fd66d578ddc765b5fd0e7b155971280a0c) - **optimizer**: annotate type for Snowflake ATANH function *(PR [#6054](https://github.com/tobymao/sqlglot/pull/6054) by [@fivetran-BradfordPaskewitz](https://github.com/fivetran-BradfordPaskewitz))*
24
+ - [`08339a9`](https://github.com/tobymao/sqlglot/commit/08339a902138211f67cfb009d2576b22ea8d8e42) - **optimizer**: annotate type for Snowflake FACTORIAL function *(PR [#6053](https://github.com/tobymao/sqlglot/pull/6053) by [@fivetran-BradfordPaskewitz](https://github.com/fivetran-BradfordPaskewitz))*
25
+
26
+ ### :bug: Bug Fixes
27
+ - [`3bb6bb3`](https://github.com/tobymao/sqlglot/commit/3bb6bb3e5193ed53c803c3786a1791f15cd2f89a) - **parser**: support :: cast operator after IS NULL/IS NOT NULL *(PR [#6056](https://github.com/tobymao/sqlglot/pull/6056) by [@geooo109](https://github.com/geooo109))*
28
+ - :arrow_lower_right: *fixes issue [#6055](https://github.com/tobymao/sqlglot/issues/6055) opened by [@vchan](https://github.com/vchan)*
29
+
30
+ ### :wrench: Chores
31
+ - [`15030a3`](https://github.com/tobymao/sqlglot/commit/15030a3996d005d79f27408a68d17f94c98aec68) - **optimizer**: Add tests for snowflake LN and LOG functions *(PR [#6048](https://github.com/tobymao/sqlglot/pull/6048) by [@fivetran-amrutabhimsenayachit](https://github.com/fivetran-amrutabhimsenayachit))*
32
+ - [`2ae8dbd`](https://github.com/tobymao/sqlglot/commit/2ae8dbd4d1b43bb27647144c32b2a781ff3edbeb) - push docs to `api-docs` branch instead of main *(commit by [@georgesittas](https://github.com/georgesittas))*
33
+
34
+
4
35
  ## [v27.22.2] - 2025-10-08
5
36
  ### :wrench: Chores
6
37
  - [`9ab3a96`](https://github.com/tobymao/sqlglot/commit/9ab3a96a853639224c80a9daff4674187a1a84ef) - bump sqlglotrs to 0.7.2 *(commit by [@georgesittas](https://github.com/georgesittas))*
@@ -7787,3 +7818,4 @@ Changelog
7787
7818
  [v27.22.0]: https://github.com/tobymao/sqlglot/compare/v27.21.0...v27.22.0
7788
7819
  [v27.22.1]: https://github.com/tobymao/sqlglot/compare/v27.22.0...v27.22.1
7789
7820
  [v27.22.2]: https://github.com/tobymao/sqlglot/compare/v27.22.1...v27.22.2
7821
+ [v27.25.0]: https://github.com/tobymao/sqlglot/compare/v27.24.2...v27.25.0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlglot
3
- Version: 27.24.2.dev0
3
+ Version: 27.25.1
4
4
  Summary: An easily customizable SQL parser and transpiler
5
5
  Author-email: Toby Mao <toby.mao@gmail.com>
6
6
  License-Expression: MIT
@@ -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 = '27.24.2.dev0'
32
- __version_tuple__ = version_tuple = (27, 24, 2, 'dev0')
31
+ __version__ = version = '27.25.1'
32
+ __version_tuple__ = version_tuple = (27, 25, 1)
33
33
 
34
- __commit_id__ = commit_id = 'g9fdaebd15'
34
+ __commit_id__ = commit_id = 'g10e2d8dae'
@@ -572,6 +572,9 @@ class Snowflake(Dialect):
572
572
  exp.Exp,
573
573
  exp.Sin,
574
574
  exp.Tan,
575
+ exp.Asin,
576
+ exp.Atanh,
577
+ exp.Cbrt,
575
578
  },
576
579
  exp.DataType.Type.INT: {
577
580
  *Dialect.TYPE_TO_EXPRESSIONS[exp.DataType.Type.INT],
@@ -629,6 +632,7 @@ class Snowflake(Dialect):
629
632
  },
630
633
  exp.DataType.Type.BIGINT: {
631
634
  *Dialect.TYPE_TO_EXPRESSIONS[exp.DataType.Type.BIGINT],
635
+ exp.Factorial,
632
636
  exp.MD5NumberLower64,
633
637
  exp.MD5NumberUpper64,
634
638
  },
@@ -660,6 +664,7 @@ class Snowflake(Dialect):
660
664
  **{
661
665
  expr_type: lambda self, e: self._annotate_by_args(e, "this")
662
666
  for expr_type in (
667
+ exp.Floor,
663
668
  exp.Left,
664
669
  exp.Pad,
665
670
  exp.Right,
@@ -6406,6 +6406,10 @@ class Exp(Func):
6406
6406
  pass
6407
6407
 
6408
6408
 
6409
+ class Factorial(Func):
6410
+ pass
6411
+
6412
+
6409
6413
  # https://docs.snowflake.com/en/sql-reference/functions/flatten
6410
6414
  class Explode(Func, UDTF):
6411
6415
  arg_types = {"this": True, "expressions": False}
@@ -5053,7 +5053,8 @@ class Parser(metaclass=_Parser):
5053
5053
  return None
5054
5054
 
5055
5055
  this = self.expression(exp.Is, this=this, expression=expression)
5056
- return self.expression(exp.Not, this=this) if negate else this
5056
+ this = self.expression(exp.Not, this=this) if negate else this
5057
+ return self._parse_column_ops(this)
5057
5058
 
5058
5059
  def _parse_in(self, this: t.Optional[exp.Expression], alias: bool = False) -> exp.In:
5059
5060
  unnest = self._parse_unnest(with_alias=False)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlglot
3
- Version: 27.24.2.dev0
3
+ Version: 27.25.1
4
4
  Summary: An easily customizable SQL parser and transpiler
5
5
  Author-email: Toby Mao <toby.mao@gmail.com>
6
6
  License-Expression: MIT
@@ -4238,3 +4238,23 @@ FROM subquery2""",
4238
4238
  "databricks": "x IS NOT UNKNOWN",
4239
4239
  },
4240
4240
  )
4241
+
4242
+ def test_is_with_dcolon(self):
4243
+ self.validate_all(
4244
+ "SELECT CAST(col IS NULL AS BOOLEAN) FROM (SELECT 1 AS col) AS t",
4245
+ read={
4246
+ "": "SELECT col IS NULL::BOOLEAN FROM (SELECT 1 AS col) AS t",
4247
+ "duckdb": "SELECT col IS NULL::BOOLEAN FROM (SELECT 1 AS col) AS t",
4248
+ "redshift": "SELECT col IS NULL::BOOLEAN FROM (SELECT 1 AS col) AS t",
4249
+ "postgres": "SELECT col IS NULL::BOOLEAN FROM (SELECT 1 AS col) AS t",
4250
+ },
4251
+ )
4252
+ self.validate_all(
4253
+ "SELECT CAST(NOT col IS NULL AS BOOLEAN) FROM (SELECT 1 AS col) AS t",
4254
+ read={
4255
+ "": "SELECT col IS NOT NULL::BOOLEAN FROM (SELECT 1 AS col) AS t",
4256
+ "duckdb": "SELECT col IS NOT NULL::BOOLEAN FROM (SELECT 1 AS col) AS t",
4257
+ "redshift": "SELECT col IS NOT NULL::BOOLEAN FROM (SELECT 1 AS col) AS t",
4258
+ "postgres": "SELECT col IS NOT NULL::BOOLEAN FROM (SELECT 1 AS col) AS t",
4259
+ },
4260
+ )
@@ -26,6 +26,9 @@ class TestSnowflake(Validator):
26
26
  self.validate_identity("SELECT ROUND(123.456, -1)")
27
27
  self.validate_identity("SELECT ROUND(123.456, 2, 'HALF_AWAY_FROM_ZERO')")
28
28
 
29
+ self.validate_identity("SELECT FLOOR(x)")
30
+ self.validate_identity("SELECT FLOOR(135.135, 1)")
31
+ self.validate_identity("SELECT FLOOR(x, -1)")
29
32
  self.assertEqual(
30
33
  # Ensures we don't fail when generating ParseJSON with the `safe` arg set to `True`
31
34
  self.validate_identity("""SELECT TRY_PARSE_JSON('{"x: 1}')""").sql(),
@@ -37,6 +40,7 @@ class TestSnowflake(Validator):
37
40
  self.assertEqual(expr.sql(dialect="snowflake"), "SELECT APPROX_TOP_K(C4, 3, 5) FROM t")
38
41
 
39
42
  self.validate_identity("SELECT EXP(1)")
43
+ self.validate_identity("SELECT FACTORIAL(5)")
40
44
  self.validate_identity("SELECT BIT_LENGTH('abc')")
41
45
  self.validate_identity("SELECT BIT_LENGTH(x'A1B2')")
42
46
  self.validate_identity("SELECT RTRIMMED_LENGTH(' ABCD ')")
@@ -55,6 +59,9 @@ class TestSnowflake(Validator):
55
59
  self.validate_identity("SELECT SOUNDEX(column_name)")
56
60
  self.validate_identity("SELECT SOUNDEX_P123(column_name)")
57
61
  self.validate_identity("SELECT ABS(x)")
62
+ self.validate_identity("SELECT ASIN(0.5)")
63
+ self.validate_identity("SELECT ATANH(0.5)")
64
+ self.validate_identity("SELECT CBRT(27.0)")
58
65
  self.validate_identity("SELECT SIGN(x)")
59
66
  self.validate_identity("SELECT COSH(1.5)")
60
67
  self.validate_identity("SELECT JAROWINKLER_SIMILARITY('hello', 'world')")
@@ -1543,6 +1543,18 @@ BIGINT;
1543
1543
  ABS(tbl.double_col);
1544
1544
  DOUBLE;
1545
1545
 
1546
+ # dialect: snowflake
1547
+ ASIN(tbl.double_col);
1548
+ DOUBLE;
1549
+
1550
+ # dialect: snowflake
1551
+ ATANH(tbl.double_col);
1552
+ DOUBLE;
1553
+
1554
+ # dialect: snowflake
1555
+ CBRT(tbl.double_col);
1556
+ DOUBLE;
1557
+
1546
1558
  # dialect: snowflake
1547
1559
  AI_AGG('foo', 'bar');
1548
1560
  VARCHAR;
@@ -1767,6 +1779,22 @@ DOUBLE;
1767
1779
  EXP(5.5);
1768
1780
  DOUBLE;
1769
1781
 
1782
+ # dialect: snowflake
1783
+ FACTORIAL(5);
1784
+ BIGINT;
1785
+
1786
+ # dialect: snowflake
1787
+ FLOOR(42);
1788
+ INT;
1789
+
1790
+ # dialect: snowflake
1791
+ FLOOR(135.135, 1);
1792
+ DOUBLE;
1793
+
1794
+ # dialect: snowflake
1795
+ FLOOR(tbl.bigint_col, -1);
1796
+ BIGINT;
1797
+
1770
1798
  # dialect: snowflake
1771
1799
  ENDSWITH('hello world', 'world');
1772
1800
  BOOLEAN;
@@ -1895,6 +1923,14 @@ INT;
1895
1923
  LOWER(tbl.str_col);
1896
1924
  VARCHAR;
1897
1925
 
1926
+ # dialect: snowflake
1927
+ LN(tbl.double_col);
1928
+ DOUBLE;
1929
+
1930
+ # dialect: snowflake
1931
+ LOG(tbl.double_col);
1932
+ DOUBLE;
1933
+
1898
1934
  # dialect: snowflake
1899
1935
  LTRIM(' hello world ');
1900
1936
  VARCHAR;
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