sqlglot 27.7.0__tar.gz → 27.9.0__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 (228) hide show
  1. {sqlglot-27.7.0 → sqlglot-27.9.0}/CHANGELOG.md +200 -0
  2. {sqlglot-27.7.0 → sqlglot-27.9.0}/CONTRIBUTING.md +4 -0
  3. {sqlglot-27.7.0 → sqlglot-27.9.0}/PKG-INFO +42 -2
  4. {sqlglot-27.7.0 → sqlglot-27.9.0}/README.md +40 -1
  5. {sqlglot-27.7.0 → sqlglot-27.9.0}/pyproject.toml +1 -0
  6. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/_version.py +16 -3
  7. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/bigquery.py +129 -9
  8. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/clickhouse.py +11 -0
  9. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/databricks.py +5 -1
  10. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/dialect.py +74 -23
  11. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/doris.py +77 -9
  12. sqlglot-27.9.0/sqlglot/dialects/dremio.py +226 -0
  13. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/duckdb.py +20 -43
  14. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/exasol.py +28 -0
  15. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/mysql.py +0 -48
  16. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/presto.py +0 -2
  17. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/redshift.py +1 -0
  18. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/singlestore.py +252 -13
  19. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/spark.py +6 -0
  20. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/trino.py +1 -0
  21. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/tsql.py +2 -0
  22. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/expressions.py +143 -7
  23. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/generator.py +98 -27
  24. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/jsonpath.py +10 -3
  25. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/optimizer/qualify_columns.py +1 -1
  26. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/parser.py +58 -17
  27. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot.egg-info/PKG-INFO +42 -2
  28. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_bigquery.py +79 -23
  29. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_clickhouse.py +41 -0
  30. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_databricks.py +13 -1
  31. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_dialect.py +190 -0
  32. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_doris.py +21 -0
  33. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_dremio.py +42 -10
  34. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_duckdb.py +37 -1
  35. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_exasol.py +16 -0
  36. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_hive.py +13 -0
  37. sqlglot-27.9.0/tests/dialects/test_singlestore.py +414 -0
  38. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_spark.py +1 -1
  39. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_trino.py +16 -0
  40. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_tsql.py +16 -2
  41. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/annotate_functions.sql +146 -0
  42. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/qualify_columns.sql +4 -0
  43. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/test_parser.py +13 -0
  44. sqlglot-27.7.0/sqlglot/dialects/dremio.py +0 -145
  45. sqlglot-27.7.0/tests/dialects/test_singlestore.py +0 -107
  46. {sqlglot-27.7.0 → sqlglot-27.9.0}/.gitignore +0 -0
  47. {sqlglot-27.7.0 → sqlglot-27.9.0}/.gitpod.yml +0 -0
  48. {sqlglot-27.7.0 → sqlglot-27.9.0}/.pre-commit-config.yaml +0 -0
  49. {sqlglot-27.7.0 → sqlglot-27.9.0}/LICENSE +0 -0
  50. {sqlglot-27.7.0 → sqlglot-27.9.0}/MANIFEST.in +0 -0
  51. {sqlglot-27.7.0 → sqlglot-27.9.0}/Makefile +0 -0
  52. {sqlglot-27.7.0 → sqlglot-27.9.0}/setup.cfg +0 -0
  53. {sqlglot-27.7.0 → sqlglot-27.9.0}/setup.py +0 -0
  54. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/__init__.py +0 -0
  55. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/__main__.py +0 -0
  56. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/_typing.py +0 -0
  57. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/__init__.py +1 -1
  58. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/athena.py +0 -0
  59. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/drill.py +0 -0
  60. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/druid.py +0 -0
  61. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/dune.py +0 -0
  62. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/fabric.py +0 -0
  63. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/hive.py +0 -0
  64. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/materialize.py +0 -0
  65. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/oracle.py +0 -0
  66. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/postgres.py +0 -0
  67. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/prql.py +0 -0
  68. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/risingwave.py +0 -0
  69. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/snowflake.py +0 -0
  70. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/spark2.py +0 -0
  71. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/sqlite.py +0 -0
  72. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/starrocks.py +0 -0
  73. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/tableau.py +0 -0
  74. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/dialects/teradata.py +0 -0
  75. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/diff.py +0 -0
  76. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/errors.py +0 -0
  77. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/executor/__init__.py +0 -0
  78. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/executor/context.py +0 -0
  79. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/executor/env.py +0 -0
  80. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/executor/python.py +0 -0
  81. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/executor/table.py +0 -0
  82. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/helper.py +0 -0
  83. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/lineage.py +0 -0
  84. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/optimizer/__init__.py +0 -0
  85. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/optimizer/annotate_types.py +0 -0
  86. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/optimizer/canonicalize.py +0 -0
  87. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/optimizer/eliminate_ctes.py +0 -0
  88. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/optimizer/eliminate_joins.py +0 -0
  89. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/optimizer/eliminate_subqueries.py +0 -0
  90. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/optimizer/isolate_table_selects.py +0 -0
  91. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/optimizer/merge_subqueries.py +0 -0
  92. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/optimizer/normalize.py +0 -0
  93. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/optimizer/normalize_identifiers.py +0 -0
  94. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/optimizer/optimize_joins.py +0 -0
  95. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/optimizer/optimizer.py +0 -0
  96. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/optimizer/pushdown_predicates.py +0 -0
  97. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/optimizer/pushdown_projections.py +0 -0
  98. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/optimizer/qualify.py +0 -0
  99. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/optimizer/qualify_tables.py +0 -0
  100. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/optimizer/scope.py +0 -0
  101. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/optimizer/simplify.py +0 -0
  102. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/optimizer/unnest_subqueries.py +0 -0
  103. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/planner.py +0 -0
  104. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/py.typed +0 -0
  105. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/schema.py +0 -0
  106. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/serde.py +0 -0
  107. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/time.py +0 -0
  108. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/tokens.py +0 -0
  109. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/transforms.py +0 -0
  110. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot/trie.py +0 -0
  111. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot.egg-info/SOURCES.txt +0 -0
  112. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot.egg-info/dependency_links.txt +0 -0
  113. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot.egg-info/requires.txt +0 -0
  114. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot.egg-info/top_level.txt +0 -0
  115. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglot.png +0 -0
  116. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglotrs/Cargo.lock +0 -0
  117. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglotrs/Cargo.toml +0 -0
  118. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglotrs/benches/dialect_settings.json +0 -0
  119. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglotrs/benches/long.rs +0 -0
  120. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglotrs/benches/token_type_settings.json +0 -0
  121. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglotrs/benches/tokenizer_dialect_settings.json +0 -0
  122. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglotrs/benches/tokenizer_settings.json +0 -0
  123. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglotrs/pyproject.toml +0 -0
  124. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglotrs/src/lib.rs +0 -0
  125. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglotrs/src/settings.rs +0 -0
  126. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglotrs/src/token.rs +0 -0
  127. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglotrs/src/tokenizer.rs +0 -0
  128. {sqlglot-27.7.0 → sqlglot-27.9.0}/sqlglotrs/src/trie.rs +0 -0
  129. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/__init__.py +0 -0
  130. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/__init__.py +0 -0
  131. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_athena.py +0 -0
  132. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_drill.py +0 -0
  133. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_druid.py +0 -0
  134. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_dune.py +0 -0
  135. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_fabric.py +0 -0
  136. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_materialize.py +0 -0
  137. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_mysql.py +0 -0
  138. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_oracle.py +0 -0
  139. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_pipe_syntax.py +0 -0
  140. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_postgres.py +0 -0
  141. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_presto.py +0 -0
  142. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_prql.py +0 -0
  143. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_redshift.py +0 -0
  144. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_risingwave.py +0 -0
  145. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_snowflake.py +0 -0
  146. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_sqlite.py +0 -0
  147. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_starrocks.py +0 -0
  148. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_tableau.py +0 -0
  149. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/dialects/test_teradata.py +0 -0
  150. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/identity.sql +0 -0
  151. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/jsonpath/LICENSE +0 -0
  152. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/jsonpath/cts.json +0 -0
  153. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/annotate_types.sql +0 -0
  154. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/canonicalize.sql +0 -0
  155. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/eliminate_ctes.sql +0 -0
  156. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/eliminate_joins.sql +0 -0
  157. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/eliminate_subqueries.sql +0 -0
  158. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/isolate_table_selects.sql +0 -0
  159. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/merge_subqueries.sql +0 -0
  160. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/normalize.sql +0 -0
  161. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/normalize_identifiers.sql +0 -0
  162. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/optimize_joins.sql +0 -0
  163. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/optimizer.sql +0 -0
  164. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/pushdown_cte_alias_columns.sql +0 -0
  165. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/pushdown_predicates.sql +0 -0
  166. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/pushdown_projections.sql +0 -0
  167. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/qualify_columns__invalid.sql +0 -0
  168. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/qualify_columns__with_invisible.sql +0 -0
  169. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/qualify_columns_ddl.sql +0 -0
  170. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/qualify_tables.sql +0 -0
  171. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/quote_identifiers.sql +0 -0
  172. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/simplify.sql +0 -0
  173. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-ds/call_center.csv.gz +0 -0
  174. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-ds/catalog_page.csv.gz +0 -0
  175. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-ds/catalog_returns.csv.gz +0 -0
  176. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-ds/catalog_sales.csv.gz +0 -0
  177. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-ds/customer.csv.gz +0 -0
  178. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-ds/customer_address.csv.gz +0 -0
  179. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-ds/customer_demographics.csv.gz +0 -0
  180. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-ds/date_dim.csv.gz +0 -0
  181. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-ds/household_demographics.csv.gz +0 -0
  182. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-ds/income_band.csv.gz +0 -0
  183. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-ds/inventory.csv.gz +0 -0
  184. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-ds/item.csv.gz +0 -0
  185. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-ds/promotion.csv.gz +0 -0
  186. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-ds/reason.csv.gz +0 -0
  187. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-ds/ship_mode.csv.gz +0 -0
  188. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-ds/store.csv.gz +0 -0
  189. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-ds/store_returns.csv.gz +0 -0
  190. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-ds/store_sales.csv.gz +0 -0
  191. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-ds/time_dim.csv.gz +0 -0
  192. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-ds/tpc-ds.sql +0 -0
  193. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-ds/warehouse.csv.gz +0 -0
  194. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-ds/web_page.csv.gz +0 -0
  195. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-ds/web_returns.csv.gz +0 -0
  196. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-ds/web_sales.csv.gz +0 -0
  197. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-ds/web_site.csv.gz +0 -0
  198. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-h/customer.csv.gz +0 -0
  199. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-h/lineitem.csv.gz +0 -0
  200. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-h/nation.csv.gz +0 -0
  201. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-h/orders.csv.gz +0 -0
  202. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-h/part.csv.gz +0 -0
  203. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-h/partsupp.csv.gz +0 -0
  204. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-h/region.csv.gz +0 -0
  205. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-h/supplier.csv.gz +0 -0
  206. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/tpc-h/tpc-h.sql +0 -0
  207. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/optimizer/unnest_subqueries.sql +0 -0
  208. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/partial.sql +0 -0
  209. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/fixtures/pretty.sql +0 -0
  210. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/gen_fixtures.py +0 -0
  211. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/helpers.py +0 -0
  212. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/test_build.py +0 -0
  213. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/test_dialect_imports.py +0 -0
  214. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/test_diff.py +0 -0
  215. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/test_docs.py +0 -0
  216. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/test_executor.py +0 -0
  217. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/test_expressions.py +0 -0
  218. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/test_generator.py +0 -0
  219. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/test_helper.py +0 -0
  220. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/test_jsonpath.py +0 -0
  221. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/test_lineage.py +0 -0
  222. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/test_optimizer.py +0 -0
  223. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/test_schema.py +0 -0
  224. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/test_serde.py +0 -0
  225. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/test_time.py +0 -0
  226. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/test_tokens.py +0 -0
  227. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/test_transforms.py +0 -0
  228. {sqlglot-27.7.0 → sqlglot-27.9.0}/tests/test_transpile.py +0 -0
@@ -1,6 +1,204 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ ## [v27.8.0] - 2025-08-19
5
+ ### :boom: BREAKING CHANGES
6
+ - due to [`2a33339`](https://github.com/tobymao/sqlglot/commit/2a333395cde71936df911488afcff92cae735e11) - annotate type for bigquery REPLACE *(PR [#5572](https://github.com/tobymao/sqlglot/pull/5572) by [@geooo109](https://github.com/geooo109))*:
7
+
8
+ annotate type for bigquery REPLACE (#5572)
9
+
10
+ - due to [`1e6f813`](https://github.com/tobymao/sqlglot/commit/1e6f81343de641e588f1a05ce7dc01bed72bd849) - annotate type for bigquery REGEXP_EXTRACT_ALL *(PR [#5573](https://github.com/tobymao/sqlglot/pull/5573) by [@geooo109](https://github.com/geooo109))*:
11
+
12
+ annotate type for bigquery REGEXP_EXTRACT_ALL (#5573)
13
+
14
+ - due to [`d0d62ed`](https://github.com/tobymao/sqlglot/commit/d0d62ede6320b3fd0eee04b7073f5708676dc58c) - support `TO_CHAR` with numeric inputs *(PR [#5570](https://github.com/tobymao/sqlglot/pull/5570) by [@jasonthomassql](https://github.com/jasonthomassql))*:
15
+
16
+ support `TO_CHAR` with numeric inputs (#5570)
17
+
18
+ - due to [`7928985`](https://github.com/tobymao/sqlglot/commit/7928985a655c3d0244bc9175a37f502b19a5c5f0) - allow dashes in JSONPath keys *(PR [#5574](https://github.com/tobymao/sqlglot/pull/5574) by [@georgesittas](https://github.com/georgesittas))*:
19
+
20
+ allow dashes in JSONPath keys (#5574)
21
+
22
+ - due to [`eb09e6e`](https://github.com/tobymao/sqlglot/commit/eb09e6e32491a05846488de7b72b1dca0e0a2669) - parse and annotate type for bigquery TRANSLATE *(PR [#5575](https://github.com/tobymao/sqlglot/pull/5575) by [@geooo109](https://github.com/geooo109))*:
23
+
24
+ parse and annotate type for bigquery TRANSLATE (#5575)
25
+
26
+ - due to [`f9a522b`](https://github.com/tobymao/sqlglot/commit/f9a522b26cd5d643b8b18fa64d70f2a3f0ff2d2c) - parse and annotate type for bigquery SOUNDEX *(PR [#5576](https://github.com/tobymao/sqlglot/pull/5576) by [@geooo109](https://github.com/geooo109))*:
27
+
28
+ parse and annotate type for bigquery SOUNDEX (#5576)
29
+
30
+ - due to [`51da41b`](https://github.com/tobymao/sqlglot/commit/51da41b90ce421b154e45add28353ac044640a1c) - annotate type for bigquery MD5 *(PR [#5577](https://github.com/tobymao/sqlglot/pull/5577) by [@geooo109](https://github.com/geooo109))*:
31
+
32
+ annotate type for bigquery MD5 (#5577)
33
+
34
+ - due to [`bcf302f`](https://github.com/tobymao/sqlglot/commit/bcf302ff6ad2d0adfc29f708a8b53b5c0e547619) - annotate type for bigquery MIN/MAX BY *(PR [#5579](https://github.com/tobymao/sqlglot/pull/5579) by [@geooo109](https://github.com/geooo109))*:
35
+
36
+ annotate type for bigquery MIN/MAX BY (#5579)
37
+
38
+ - due to [`c501d9e`](https://github.com/tobymao/sqlglot/commit/c501d9e6f58e4880e4d23f21f53f72dcb5fdaa8c) - parse and annotate type for bigquery GROUPING *(PR [#5581](https://github.com/tobymao/sqlglot/pull/5581) by [@geooo109](https://github.com/geooo109))*:
39
+
40
+ parse and annotate type for bigquery GROUPING (#5581)
41
+
42
+
43
+ ### :sparkles: New Features
44
+ - [`2a33339`](https://github.com/tobymao/sqlglot/commit/2a333395cde71936df911488afcff92cae735e11) - **optimizer**: annotate type for bigquery REPLACE *(PR [#5572](https://github.com/tobymao/sqlglot/pull/5572) by [@geooo109](https://github.com/geooo109))*
45
+ - [`1e6f813`](https://github.com/tobymao/sqlglot/commit/1e6f81343de641e588f1a05ce7dc01bed72bd849) - **optimizer**: annotate type for bigquery REGEXP_EXTRACT_ALL *(PR [#5573](https://github.com/tobymao/sqlglot/pull/5573) by [@geooo109](https://github.com/geooo109))*
46
+ - [`eb09e6e`](https://github.com/tobymao/sqlglot/commit/eb09e6e32491a05846488de7b72b1dca0e0a2669) - **optimizer**: parse and annotate type for bigquery TRANSLATE *(PR [#5575](https://github.com/tobymao/sqlglot/pull/5575) by [@geooo109](https://github.com/geooo109))*
47
+ - [`f9a522b`](https://github.com/tobymao/sqlglot/commit/f9a522b26cd5d643b8b18fa64d70f2a3f0ff2d2c) - **optimizer**: parse and annotate type for bigquery SOUNDEX *(PR [#5576](https://github.com/tobymao/sqlglot/pull/5576) by [@geooo109](https://github.com/geooo109))*
48
+ - [`51da41b`](https://github.com/tobymao/sqlglot/commit/51da41b90ce421b154e45add28353ac044640a1c) - **optimizer**: annotate type for bigquery MD5 *(PR [#5577](https://github.com/tobymao/sqlglot/pull/5577) by [@geooo109](https://github.com/geooo109))*
49
+ - [`bcf302f`](https://github.com/tobymao/sqlglot/commit/bcf302ff6ad2d0adfc29f708a8b53b5c0e547619) - **optimizer**: annotate type for bigquery MIN/MAX BY *(PR [#5579](https://github.com/tobymao/sqlglot/pull/5579) by [@geooo109](https://github.com/geooo109))*
50
+ - [`c501d9e`](https://github.com/tobymao/sqlglot/commit/c501d9e6f58e4880e4d23f21f53f72dcb5fdaa8c) - **optimizer**: parse and annotate type for bigquery GROUPING *(PR [#5581](https://github.com/tobymao/sqlglot/pull/5581) by [@geooo109](https://github.com/geooo109))*
51
+ - [`8612825`](https://github.com/tobymao/sqlglot/commit/86128253f911b733d45b073356e3b8ddf261c22b) - **spark**: generate date/time ops as interval binary ops *(commit by [@georgesittas](https://github.com/georgesittas))*
52
+ - [`8fda774`](https://github.com/tobymao/sqlglot/commit/8fda774b7a9b0c66948349dfe030d3c122ff6eee) - **singlestore**: Added parsing and generation of JSON_EXTRACT *(PR [#5555](https://github.com/tobymao/sqlglot/pull/5555) by [@AdalbertMemSQL](https://github.com/AdalbertMemSQL))*
53
+ - [`82cc954`](https://github.com/tobymao/sqlglot/commit/82cc9549a875211a400e5c4e818b05ca48a0a9f4) - **exasol**: map div function to IntDiv in exasol dialect *(PR [#5593](https://github.com/tobymao/sqlglot/pull/5593) by [@nnamdi16](https://github.com/nnamdi16))*
54
+ - [`eb0fe68`](https://github.com/tobymao/sqlglot/commit/eb0fe68d6b5977053c871badf2f5c1895b3e1c66) - **trino**: add JSON_VALUE function support with RETURNING clause *(PR [#5590](https://github.com/tobymao/sqlglot/pull/5590) by [@rev-rwasilewski](https://github.com/rev-rwasilewski))*
55
+ - [`9e95c11`](https://github.com/tobymao/sqlglot/commit/9e95c115ea0304d9ccb4cb0be8389f5ff5f2a952) - **exasol**: mapped weekofyear to week in Exasol dialect *(PR [#5594](https://github.com/tobymao/sqlglot/pull/5594) by [@nnamdi16](https://github.com/nnamdi16))*
56
+ - [`8f013c3`](https://github.com/tobymao/sqlglot/commit/8f013c37a412ca5978889c1e47b0c6f7add0715d) - **singlestore**: Fixed parsing of DATE function *(PR [#5601](https://github.com/tobymao/sqlglot/pull/5601) by [@AdalbertMemSQL](https://github.com/AdalbertMemSQL))*
57
+ - [`a4a299a`](https://github.com/tobymao/sqlglot/commit/a4a299acbaf4461f0c2b470bc4e9e9590515eda7) - transpile `TO_CHAR` from Dremio to Databricks *(PR [#5598](https://github.com/tobymao/sqlglot/pull/5598) by [@jasonthomassql](https://github.com/jasonthomassql))*
58
+ - [`093f35c`](https://github.com/tobymao/sqlglot/commit/093f35c201c3c22c3a14c6f8de26c06246bdf19c) - **dremio**: handle `DATE_FORMAT`, `TO_DATE`, and `TO_TIMESTAMP` *(PR [#5597](https://github.com/tobymao/sqlglot/pull/5597) by [@jasonthomassql](https://github.com/jasonthomassql))*
59
+
60
+ ### :bug: Bug Fixes
61
+ - [`d0d62ed`](https://github.com/tobymao/sqlglot/commit/d0d62ede6320b3fd0eee04b7073f5708676dc58c) - **dremio**: support `TO_CHAR` with numeric inputs *(PR [#5570](https://github.com/tobymao/sqlglot/pull/5570) by [@jasonthomassql](https://github.com/jasonthomassql))*
62
+ - [`7928985`](https://github.com/tobymao/sqlglot/commit/7928985a655c3d0244bc9175a37f502b19a5c5f0) - **bigquery**: allow dashes in JSONPath keys *(PR [#5574](https://github.com/tobymao/sqlglot/pull/5574) by [@georgesittas](https://github.com/georgesittas))*
63
+ - [`866042d`](https://github.com/tobymao/sqlglot/commit/866042d0268da0cebce042c0868878c0fb39c3d1) - Remove TokenType.APPLY from table alias tokens *(PR [#5592](https://github.com/tobymao/sqlglot/pull/5592) by [@VaggelisD](https://github.com/VaggelisD))*
64
+ - :arrow_lower_right: *fixes issue [#5591](https://github.com/tobymao/sqlglot/issues/5591) opened by [@saadbelgi](https://github.com/saadbelgi)*
65
+ - [`b485f66`](https://github.com/tobymao/sqlglot/commit/b485f6666fa8625b7da45ef832b5d666fbb707ea) - **dremio**: improve `TO_CHAR` transpilability *(PR [#5580](https://github.com/tobymao/sqlglot/pull/5580) by [@jasonthomassql](https://github.com/jasonthomassql))*
66
+ - [`81874e9`](https://github.com/tobymao/sqlglot/commit/81874e9c3aafcc2cf8fb443f65146c5b3598b9b3) - handle unknown types in `unit_to_str` *(commit by [@georgesittas](https://github.com/georgesittas))*
67
+
68
+ ### :wrench: Chores
69
+ - [`173e442`](https://github.com/tobymao/sqlglot/commit/173e4425b692728abffa8542324690823f984303) - refactor JSON_VALUE handling for MySQL and Trino *(commit by [@georgesittas](https://github.com/georgesittas))*
70
+
71
+
72
+ ## [v27.7.0] - 2025-08-13
73
+ ### :boom: BREAKING CHANGES
74
+ - due to [`938f4b6`](https://github.com/tobymao/sqlglot/commit/938f4b6ebc1c0d26bd3c1400883978c79a435189) - annotate type for LAST_DAY *(PR [#5528](https://github.com/tobymao/sqlglot/pull/5528) by [@geooo109](https://github.com/geooo109))*:
75
+
76
+ annotate type for LAST_DAY (#5528)
77
+
78
+ - due to [`7d12dac`](https://github.com/tobymao/sqlglot/commit/7d12dac613ba5119334408f2c52cb270067156d9) - annotate type for bigquery GENERATE_TIMESTAMP_ARRAY *(PR [#5529](https://github.com/tobymao/sqlglot/pull/5529) by [@geooo109](https://github.com/geooo109))*:
79
+
80
+ annotate type for bigquery GENERATE_TIMESTAMP_ARRAY (#5529)
81
+
82
+ - due to [`d50ebe2`](https://github.com/tobymao/sqlglot/commit/d50ebe286dd8e2836b9eb2a3406f15976db3aa05) - annotate type for bigquery TIME_TRUNC *(PR [#5530](https://github.com/tobymao/sqlglot/pull/5530) by [@geooo109](https://github.com/geooo109))*:
83
+
84
+ annotate type for bigquery TIME_TRUNC (#5530)
85
+
86
+ - due to [`29748be`](https://github.com/tobymao/sqlglot/commit/29748be7dfc10edc9f29665c98327883dd25c13d) - annotate type for bigquery TIME *(PR [#5531](https://github.com/tobymao/sqlglot/pull/5531) by [@geooo109](https://github.com/geooo109))*:
87
+
88
+ annotate type for bigquery TIME (#5531)
89
+
90
+ - due to [`7003b3f`](https://github.com/tobymao/sqlglot/commit/7003b3fa39cd455e3643066364696708d1ac4f38) - parse and annotate type for bigquery DATE_FROM_UNIX_DATE *(PR [#5532](https://github.com/tobymao/sqlglot/pull/5532) by [@geooo109](https://github.com/geooo109))*:
91
+
92
+ parse and annotate type for bigquery DATE_FROM_UNIX_DATE (#5532)
93
+
94
+ - due to [`a276ca6`](https://github.com/tobymao/sqlglot/commit/a276ca6fd5f9d47fa8c90fcfa19f9864e7a28f8f) - parse and annotate type for bigquery JUSTIFY funcs *(PR [#5534](https://github.com/tobymao/sqlglot/pull/5534) by [@geooo109](https://github.com/geooo109))*:
95
+
96
+ parse and annotate type for bigquery JUSTIFY funcs (#5534)
97
+
98
+ - due to [`374178e`](https://github.com/tobymao/sqlglot/commit/374178e22fe8d2d2275b65fe08e27ef66c611220) - parse and annotate type for bigquery UNIX_MICROS and UNIX_MILLIS *(PR [#5535](https://github.com/tobymao/sqlglot/pull/5535) by [@geooo109](https://github.com/geooo109))*:
99
+
100
+ parse and annotate type for bigquery UNIX_MICROS and UNIX_MILLIS (#5535)
101
+
102
+ - due to [`1d8d1ab`](https://github.com/tobymao/sqlglot/commit/1d8d1abe459053a135a46525d0a13bb861220927) - annotate type for bigquery DATE_TRUNC *(PR [#5540](https://github.com/tobymao/sqlglot/pull/5540) by [@geooo109](https://github.com/geooo109))*:
103
+
104
+ annotate type for bigquery DATE_TRUNC (#5540)
105
+
106
+ - due to [`306ba65`](https://github.com/tobymao/sqlglot/commit/306ba6531839ea2823f5165de7bde01d17560845) - annotate type for bigquery TIMESTAMP_TRUNC *(PR [#5541](https://github.com/tobymao/sqlglot/pull/5541) by [@geooo109](https://github.com/geooo109))*:
107
+
108
+ annotate type for bigquery TIMESTAMP_TRUNC (#5541)
109
+
110
+ - due to [`d799c5a`](https://github.com/tobymao/sqlglot/commit/d799c5af23010a67c29edb6d45a40fb24903e1a3) - preserve projection names when merging subqueries *(commit by [@snovik75](https://github.com/snovik75))*:
111
+
112
+ preserve projection names when merging subqueries
113
+
114
+ - due to [`8130bd4`](https://github.com/tobymao/sqlglot/commit/8130bd40815803a6781ee8f20fccd30987516192) - WEEKDAY of WEEK as VAR *(PR [#5552](https://github.com/tobymao/sqlglot/pull/5552) by [@geooo109](https://github.com/geooo109))*:
115
+
116
+ WEEKDAY of WEEK as VAR (#5552)
117
+
118
+ - due to [`f3ffe19`](https://github.com/tobymao/sqlglot/commit/f3ffe19ec01533c5f27b9d3a7b6704b83c005118) - annotate type for bigquery format_time *(PR [#5559](https://github.com/tobymao/sqlglot/pull/5559) by [@geooo109](https://github.com/geooo109))*:
119
+
120
+ annotate type for bigquery format_time (#5559)
121
+
122
+ - due to [`6872b43`](https://github.com/tobymao/sqlglot/commit/6872b43ba17a39137172fd2fa9f0d059ce595ef9) - use dialect in DataType.build fixes [#5560](https://github.com/tobymao/sqlglot/pull/5560) *(commit by [@georgesittas](https://github.com/georgesittas))*:
123
+
124
+ use dialect in DataType.build fixes #5560
125
+
126
+ - due to [`3ab3690`](https://github.com/tobymao/sqlglot/commit/3ab369096313b418699b7942b1c513c0c66a5331) - parse and annotate type for bigquery PARSE_DATETIME *(PR [#5558](https://github.com/tobymao/sqlglot/pull/5558) by [@geooo109](https://github.com/geooo109))*:
127
+
128
+ parse and annotate type for bigquery PARSE_DATETIME (#5558)
129
+
130
+ - due to [`e5da951`](https://github.com/tobymao/sqlglot/commit/e5da951542eb55691bc43fbbfbec4a30100de038) - parse and annotate type for bigquery PARSE_TIME *(PR [#5561](https://github.com/tobymao/sqlglot/pull/5561) by [@geooo109](https://github.com/geooo109))*:
131
+
132
+ parse and annotate type for bigquery PARSE_TIME (#5561)
133
+
134
+ - due to [`798e213`](https://github.com/tobymao/sqlglot/commit/798e213fd10c3b61afbd8cef621546de65fa6f26) - improve transpilability of ANY_VALUE closes [#5563](https://github.com/tobymao/sqlglot/pull/5563) *(commit by [@georgesittas](https://github.com/georgesittas))*:
135
+
136
+ improve transpilability of ANY_VALUE closes #5563
137
+
138
+ - due to [`8c0cb76`](https://github.com/tobymao/sqlglot/commit/8c0cb764fd825062fb7334032b8eeffbc39627d5) - more robust CREATE SEQUENCE *(PR [#5566](https://github.com/tobymao/sqlglot/pull/5566) by [@geooo109](https://github.com/geooo109))*:
139
+
140
+ more robust CREATE SEQUENCE (#5566)
141
+
142
+ - due to [`c7041c7`](https://github.com/tobymao/sqlglot/commit/c7041c71250b17192c2f25fb8f33407324d332c2) - parse and annotate type for bigquery BYTE_LENGHT *(PR [#5568](https://github.com/tobymao/sqlglot/pull/5568) by [@geooo109](https://github.com/geooo109))*:
143
+
144
+ parse and annotate type for bigquery BYTE_LENGHT (#5568)
145
+
146
+ - due to [`a6c61c3`](https://github.com/tobymao/sqlglot/commit/a6c61c34f1e168c97dd5c2b8ec071372ba593992) - parse and annotate type for bigquery CODE_POINTS_TO_STRING *(PR [#5569](https://github.com/tobymao/sqlglot/pull/5569) by [@geooo109](https://github.com/geooo109))*:
147
+
148
+ parse and annotate type for bigquery CODE_POINTS_TO_STRING (#5569)
149
+
150
+ - due to [`51e0335`](https://github.com/tobymao/sqlglot/commit/51e0335377fe2bc2e2a94a623475791e9dd19fb9) - parse and annotate type for bigquery REVERSE *(PR [#5571](https://github.com/tobymao/sqlglot/pull/5571) by [@geooo109](https://github.com/geooo109))*:
151
+
152
+ parse and annotate type for bigquery REVERSE (#5571)
153
+
154
+
155
+ ### :sparkles: New Features
156
+ - [`1fb90db`](https://github.com/tobymao/sqlglot/commit/1fb90db52b59e6e3a40597c6f611d0476b72025b) - **teradata**: Add support for Teradata set query band expression *(PR [#5519](https://github.com/tobymao/sqlglot/pull/5519) by [@treff7es](https://github.com/treff7es))*
157
+ - [`a49baaf`](https://github.com/tobymao/sqlglot/commit/a49baaf717cb41abb25ca51ae5adddc8473baa8b) - **doris**: Override table_sql to avoid AS keyword in UPDATE and DELETE statements *(PR [#5517](https://github.com/tobymao/sqlglot/pull/5517) by [@peterylh](https://github.com/peterylh))*
158
+ - [`75fd6d2`](https://github.com/tobymao/sqlglot/commit/75fd6d21fb7bc8399432e73d10b4837ae62d2ab5) - **exasol**: Add support for date difference functions in Exasol dialect *(PR [#5510](https://github.com/tobymao/sqlglot/pull/5510) by [@nnamdi16](https://github.com/nnamdi16))*
159
+ - [`2a91bb4`](https://github.com/tobymao/sqlglot/commit/2a91bb4f17c7569a5b409cc07e970e5d68235149) - **teradata**: Add support for Teradata locking select *(PR [#5524](https://github.com/tobymao/sqlglot/pull/5524) by [@treff7es](https://github.com/treff7es))*
160
+ - [`938f4b6`](https://github.com/tobymao/sqlglot/commit/938f4b6ebc1c0d26bd3c1400883978c79a435189) - **optimizer**: annotate type for LAST_DAY *(PR [#5528](https://github.com/tobymao/sqlglot/pull/5528) by [@geooo109](https://github.com/geooo109))*
161
+ - [`7d12dac`](https://github.com/tobymao/sqlglot/commit/7d12dac613ba5119334408f2c52cb270067156d9) - **optimizer**: annotate type for bigquery GENERATE_TIMESTAMP_ARRAY *(PR [#5529](https://github.com/tobymao/sqlglot/pull/5529) by [@geooo109](https://github.com/geooo109))*
162
+ - [`d50ebe2`](https://github.com/tobymao/sqlglot/commit/d50ebe286dd8e2836b9eb2a3406f15976db3aa05) - **optimizer**: annotate type for bigquery TIME_TRUNC *(PR [#5530](https://github.com/tobymao/sqlglot/pull/5530) by [@geooo109](https://github.com/geooo109))*
163
+ - [`29748be`](https://github.com/tobymao/sqlglot/commit/29748be7dfc10edc9f29665c98327883dd25c13d) - **optimizer**: annotate type for bigquery TIME *(PR [#5531](https://github.com/tobymao/sqlglot/pull/5531) by [@geooo109](https://github.com/geooo109))*
164
+ - [`7003b3f`](https://github.com/tobymao/sqlglot/commit/7003b3fa39cd455e3643066364696708d1ac4f38) - **optimizer**: parse and annotate type for bigquery DATE_FROM_UNIX_DATE *(PR [#5532](https://github.com/tobymao/sqlglot/pull/5532) by [@geooo109](https://github.com/geooo109))*
165
+ - [`a276ca6`](https://github.com/tobymao/sqlglot/commit/a276ca6fd5f9d47fa8c90fcfa19f9864e7a28f8f) - **optimizer**: parse and annotate type for bigquery JUSTIFY funcs *(PR [#5534](https://github.com/tobymao/sqlglot/pull/5534) by [@geooo109](https://github.com/geooo109))*
166
+ - [`374178e`](https://github.com/tobymao/sqlglot/commit/374178e22fe8d2d2275b65fe08e27ef66c611220) - **optimizer**: parse and annotate type for bigquery UNIX_MICROS and UNIX_MILLIS *(PR [#5535](https://github.com/tobymao/sqlglot/pull/5535) by [@geooo109](https://github.com/geooo109))*
167
+ - [`1d8d1ab`](https://github.com/tobymao/sqlglot/commit/1d8d1abe459053a135a46525d0a13bb861220927) - **optimizer**: annotate type for bigquery DATE_TRUNC *(PR [#5540](https://github.com/tobymao/sqlglot/pull/5540) by [@geooo109](https://github.com/geooo109))*
168
+ - [`306ba65`](https://github.com/tobymao/sqlglot/commit/306ba6531839ea2823f5165de7bde01d17560845) - **optimizer**: annotate type for bigquery TIMESTAMP_TRUNC *(PR [#5541](https://github.com/tobymao/sqlglot/pull/5541) by [@geooo109](https://github.com/geooo109))*
169
+ - [`6a68cca`](https://github.com/tobymao/sqlglot/commit/6a68cca97ad4bdd75c544ada0a5af0fa92ec4664) - **dremio**: support lowercase `TIME_MAPPING` formats *(PR [#5556](https://github.com/tobymao/sqlglot/pull/5556) by [@jasonthomassql](https://github.com/jasonthomassql))*
170
+ - [`f3ffe19`](https://github.com/tobymao/sqlglot/commit/f3ffe19ec01533c5f27b9d3a7b6704b83c005118) - **optimizer**: annotate type for bigquery format_time *(PR [#5559](https://github.com/tobymao/sqlglot/pull/5559) by [@geooo109](https://github.com/geooo109))*
171
+ - [`3ab3690`](https://github.com/tobymao/sqlglot/commit/3ab369096313b418699b7942b1c513c0c66a5331) - **optimizer**: parse and annotate type for bigquery PARSE_DATETIME *(PR [#5558](https://github.com/tobymao/sqlglot/pull/5558) by [@geooo109](https://github.com/geooo109))*
172
+ - [`e5da951`](https://github.com/tobymao/sqlglot/commit/e5da951542eb55691bc43fbbfbec4a30100de038) - **optimizer**: parse and annotate type for bigquery PARSE_TIME *(PR [#5561](https://github.com/tobymao/sqlglot/pull/5561) by [@geooo109](https://github.com/geooo109))*
173
+ - [`902a0cd`](https://github.com/tobymao/sqlglot/commit/902a0cdfe46f693aa55612d45a2de2def21f0b8c) - **singlestore**: Added parsing/generation of UNIXTIME functions *(PR [#5562](https://github.com/tobymao/sqlglot/pull/5562) by [@AdalbertMemSQL](https://github.com/AdalbertMemSQL))*
174
+ - [`798e213`](https://github.com/tobymao/sqlglot/commit/798e213fd10c3b61afbd8cef621546de65fa6f26) - **duckdb**: improve transpilability of ANY_VALUE closes [#5563](https://github.com/tobymao/sqlglot/pull/5563) *(commit by [@georgesittas](https://github.com/georgesittas))*
175
+ - [`c7041c7`](https://github.com/tobymao/sqlglot/commit/c7041c71250b17192c2f25fb8f33407324d332c2) - **optimizer**: parse and annotate type for bigquery BYTE_LENGHT *(PR [#5568](https://github.com/tobymao/sqlglot/pull/5568) by [@geooo109](https://github.com/geooo109))*
176
+ - [`a6c61c3`](https://github.com/tobymao/sqlglot/commit/a6c61c34f1e168c97dd5c2b8ec071372ba593992) - **optimizer**: parse and annotate type for bigquery CODE_POINTS_TO_STRING *(PR [#5569](https://github.com/tobymao/sqlglot/pull/5569) by [@geooo109](https://github.com/geooo109))*
177
+
178
+ ### :bug: Bug Fixes
179
+ - [`9020684`](https://github.com/tobymao/sqlglot/commit/9020684a7e984a10fa4775339596ac5a0d6a6d93) - nested natural join performance closes [#5514](https://github.com/tobymao/sqlglot/pull/5514) *(PR [#5515](https://github.com/tobymao/sqlglot/pull/5515) by [@tobymao](https://github.com/tobymao))*
180
+ - [`394870a`](https://github.com/tobymao/sqlglot/commit/394870a7ee9bb3bc814b7c3847193687f06b432b) - **duckdb**: transpile ADD_MONTHS *(PR [#5523](https://github.com/tobymao/sqlglot/pull/5523) by [@geooo109](https://github.com/geooo109))*
181
+ - :arrow_lower_right: *fixes issue [#5505](https://github.com/tobymao/sqlglot/issues/5505) opened by [@kyle-cheung](https://github.com/kyle-cheung)*
182
+ - [`249692c`](https://github.com/tobymao/sqlglot/commit/249692c67450a1fe3775e1f35b6f62fdb0a62e1a) - **duckdb**: put guard in AddMonths generator before annotating it *(commit by [@georgesittas](https://github.com/georgesittas))*
183
+ - [`d799c5a`](https://github.com/tobymao/sqlglot/commit/d799c5af23010a67c29edb6d45a40fb24903e1a3) - **optimizer**: preserve projection names when merging subqueries *(commit by [@snovik75](https://github.com/snovik75))*
184
+ - [`8130bd4`](https://github.com/tobymao/sqlglot/commit/8130bd40815803a6781ee8f20fccd30987516192) - **parser**: WEEKDAY of WEEK as VAR *(PR [#5552](https://github.com/tobymao/sqlglot/pull/5552) by [@geooo109](https://github.com/geooo109))*
185
+ - :arrow_lower_right: *fixes issue [#5547](https://github.com/tobymao/sqlglot/issues/5547) opened by [@rloredo](https://github.com/rloredo)*
186
+ - [`4e1373f`](https://github.com/tobymao/sqlglot/commit/4e1373f301cbea3cb5762fc1430b65deae3f9d04) - **doris**: Rename Table *(PR [#5549](https://github.com/tobymao/sqlglot/pull/5549) by [@xinge-ji](https://github.com/xinge-ji))*
187
+ - [`16f544d`](https://github.com/tobymao/sqlglot/commit/16f544dc25d5d61277d32f02e4be18c10d16cf9f) - **doris**: fix DATE_TRUNC and partition by *(PR [#5553](https://github.com/tobymao/sqlglot/pull/5553) by [@xinge-ji](https://github.com/xinge-ji))*
188
+ - [`6295414`](https://github.com/tobymao/sqlglot/commit/6295414fb41401f92993e661b880a0727e74c087) - convert unit to Var instead of choosing default in `unit_to_var` *(commit by [@georgesittas](https://github.com/georgesittas))*
189
+ - [`6872b43`](https://github.com/tobymao/sqlglot/commit/6872b43ba17a39137172fd2fa9f0d059ce595ef9) - **parser**: use dialect in DataType.build fixes [#5560](https://github.com/tobymao/sqlglot/pull/5560) *(commit by [@georgesittas](https://github.com/georgesittas))*
190
+ - [`6f354d9`](https://github.com/tobymao/sqlglot/commit/6f354d958fb9ca9242b7fc1d2da86af74d57fedc) - **clickhouse**: add ROWS keyword in OFFSET followed by FETCH fixes [#5564](https://github.com/tobymao/sqlglot/pull/5564) *(commit by [@georgesittas](https://github.com/georgesittas))*
191
+ - [`8c0cb76`](https://github.com/tobymao/sqlglot/commit/8c0cb764fd825062fb7334032b8eeffbc39627d5) - **parser**: more robust CREATE SEQUENCE *(PR [#5566](https://github.com/tobymao/sqlglot/pull/5566) by [@geooo109](https://github.com/geooo109))*
192
+ - :arrow_lower_right: *fixes issue [#5537](https://github.com/tobymao/sqlglot/issues/5537) opened by [@tekumara](https://github.com/tekumara)*
193
+ - [`7e9df88`](https://github.com/tobymao/sqlglot/commit/7e9df880bc118d0dbb2dbd6344f805f79af2fe5e) - **doris**: CURRENT_DATE *(PR [#5567](https://github.com/tobymao/sqlglot/pull/5567) by [@xinge-ji](https://github.com/xinge-ji))*
194
+ - [`51e0335`](https://github.com/tobymao/sqlglot/commit/51e0335377fe2bc2e2a94a623475791e9dd19fb9) - **optimizer**: parse and annotate type for bigquery REVERSE *(PR [#5571](https://github.com/tobymao/sqlglot/pull/5571) by [@geooo109](https://github.com/geooo109))*
195
+
196
+ ### :wrench: Chores
197
+ - [`720f634`](https://github.com/tobymao/sqlglot/commit/720f6343f6144e8986ec6b7e50419c3d7a331f0a) - Fix style on main, refactor exasol tests *(PR [#5527](https://github.com/tobymao/sqlglot/pull/5527) by [@VaggelisD](https://github.com/VaggelisD))*
198
+ - [`5653501`](https://github.com/tobymao/sqlglot/commit/5653501606f041282b6315c3efa33b9a3baf8d98) - Refactor PR 5517 *(PR [#5526](https://github.com/tobymao/sqlglot/pull/5526) by [@VaggelisD](https://github.com/VaggelisD))*
199
+ - [`d15dfe3`](https://github.com/tobymao/sqlglot/commit/d15dfe3f0f4444e4999ad65051b2474e62f422b3) - build type using dialect for bigquery *(PR [#5539](https://github.com/tobymao/sqlglot/pull/5539) by [@geooo109](https://github.com/geooo109))*
200
+
201
+
4
202
  ## [v27.6.0] - 2025-08-01
5
203
  ### :boom: BREAKING CHANGES
6
204
  - due to [`6b691b3`](https://github.com/tobymao/sqlglot/commit/6b691b33c3528c0377bd8822a3df90de869c6cb1) - Parse and transpile GET(...) extract function *(PR [#5500](https://github.com/tobymao/sqlglot/pull/5500) by [@VaggelisD](https://github.com/VaggelisD))*:
@@ -6404,3 +6602,5 @@ Changelog
6404
6602
  [v27.5.0]: https://github.com/tobymao/sqlglot/compare/v27.4.1...v27.5.0
6405
6603
  [v27.5.1]: https://github.com/tobymao/sqlglot/compare/v27.5.0...v27.5.1
6406
6604
  [v27.6.0]: https://github.com/tobymao/sqlglot/compare/v27.5.1...v27.6.0
6605
+ [v27.7.0]: https://github.com/tobymao/sqlglot/compare/v27.6.0...v27.7.0
6606
+ [v27.8.0]: https://github.com/tobymao/sqlglot/compare/v27.7.0...v27.8.0
@@ -39,6 +39,10 @@ to share any relevant context and increase its chances of getting merged.
39
39
 
40
40
  Note: make sure to follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) guidelines when creating a PR.
41
41
 
42
+ ## IMPORTANT: Keep PRs minimal in scope
43
+
44
+ Each pull request should focus on a single, well-defined change. Avoid bundling multiple unrelated fixes or features in one PR. This makes code review faster and more effective, increases the likelihood of acceptance, and helps maintain a clean git history.
45
+
42
46
  ## Report bugs using GitHub's [issues](https://github.com/tobymao/sqlglot/issues)
43
47
 
44
48
  We use GitHub issues to track public bugs. Report a bug by opening a new issue.
@@ -1,8 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlglot
3
- Version: 27.7.0
3
+ Version: 27.9.0
4
4
  Summary: An easily customizable SQL parser and transpiler
5
5
  Author-email: Toby Mao <toby.mao@gmail.com>
6
+ License-Expression: MIT
6
7
  Project-URL: Homepage, https://sqlglot.com/
7
8
  Project-URL: Documentation, https://sqlglot.com/sqlglot.html
8
9
  Project-URL: Repository, https://github.com/tobymao/sqlglot
@@ -72,6 +73,7 @@ Contributions are very welcome in SQLGlot; read the [contribution guide](https:/
72
73
  * [Run Tests and Lint](#run-tests-and-lint)
73
74
  * [Benchmarks](#benchmarks)
74
75
  * [Optional Dependencies](#optional-dependencies)
76
+ * [Supported Dialects](#supported-dialects)
75
77
 
76
78
  ## Install
77
79
 
@@ -256,7 +258,7 @@ sqlglot.errors.ParseError: Expecting ). Line 1, Col: 34.
256
258
  Structured syntax errors are accessible for programmatic use:
257
259
 
258
260
  ```python
259
- import sqlglot
261
+ import sqlglot.errors
260
262
  try:
261
263
  sqlglot.transpile("SELECT foo FROM (SELECT baz FROM t")
262
264
  except sqlglot.errors.ParseError as e:
@@ -584,3 +586,41 @@ SQLGlot uses [dateutil](https://github.com/dateutil/dateutil) to simplify litera
584
586
  ```sql
585
587
  x + interval '1' month
586
588
  ```
589
+
590
+ ## Supported Dialects
591
+
592
+ | Dialect | Support Level |
593
+ |---------|---------------|
594
+ | Athena | Official |
595
+ | BigQuery | Official |
596
+ | ClickHouse | Official |
597
+ | Databricks | Official |
598
+ | Doris | Community |
599
+ | Dremio | Community |
600
+ | Drill | Community |
601
+ | Druid | Community |
602
+ | DuckDB | Official |
603
+ | Exasol | Community |
604
+ | Fabric | Community |
605
+ | Hive | Official |
606
+ | Materialize | Community |
607
+ | MySQL | Official |
608
+ | Oracle | Official |
609
+ | Postgres | Official |
610
+ | Presto | Official |
611
+ | PRQL | Community |
612
+ | Redshift | Official |
613
+ | RisingWave | Community |
614
+ | SingleStore | Community |
615
+ | Snowflake | Official |
616
+ | Spark | Official |
617
+ | SQLite | Official |
618
+ | StarRocks | Official |
619
+ | Tableau | Official |
620
+ | Teradata | Community |
621
+ | Trino | Official |
622
+ | TSQL | Official |
623
+
624
+ **Official Dialects** are maintained by the core SQLGlot team with higher priority for bug fixes and feature additions.
625
+
626
+ **Community Dialects** are developed and maintained primarily through community contributions. These are fully functional but may receive lower priority for issue resolution compared to officially supported dialects. We welcome and encourage community contributions to improve these dialects.
@@ -34,6 +34,7 @@ Contributions are very welcome in SQLGlot; read the [contribution guide](https:/
34
34
  * [Run Tests and Lint](#run-tests-and-lint)
35
35
  * [Benchmarks](#benchmarks)
36
36
  * [Optional Dependencies](#optional-dependencies)
37
+ * [Supported Dialects](#supported-dialects)
37
38
 
38
39
  ## Install
39
40
 
@@ -218,7 +219,7 @@ sqlglot.errors.ParseError: Expecting ). Line 1, Col: 34.
218
219
  Structured syntax errors are accessible for programmatic use:
219
220
 
220
221
  ```python
221
- import sqlglot
222
+ import sqlglot.errors
222
223
  try:
223
224
  sqlglot.transpile("SELECT foo FROM (SELECT baz FROM t")
224
225
  except sqlglot.errors.ParseError as e:
@@ -546,3 +547,41 @@ SQLGlot uses [dateutil](https://github.com/dateutil/dateutil) to simplify litera
546
547
  ```sql
547
548
  x + interval '1' month
548
549
  ```
550
+
551
+ ## Supported Dialects
552
+
553
+ | Dialect | Support Level |
554
+ |---------|---------------|
555
+ | Athena | Official |
556
+ | BigQuery | Official |
557
+ | ClickHouse | Official |
558
+ | Databricks | Official |
559
+ | Doris | Community |
560
+ | Dremio | Community |
561
+ | Drill | Community |
562
+ | Druid | Community |
563
+ | DuckDB | Official |
564
+ | Exasol | Community |
565
+ | Fabric | Community |
566
+ | Hive | Official |
567
+ | Materialize | Community |
568
+ | MySQL | Official |
569
+ | Oracle | Official |
570
+ | Postgres | Official |
571
+ | Presto | Official |
572
+ | PRQL | Community |
573
+ | Redshift | Official |
574
+ | RisingWave | Community |
575
+ | SingleStore | Community |
576
+ | Snowflake | Official |
577
+ | Spark | Official |
578
+ | SQLite | Official |
579
+ | StarRocks | Official |
580
+ | Tableau | Official |
581
+ | Teradata | Community |
582
+ | Trino | Official |
583
+ | TSQL | Official |
584
+
585
+ **Official Dialects** are maintained by the core SQLGlot team with higher priority for bug fixes and feature additions.
586
+
587
+ **Community Dialects** are developed and maintained primarily through community contributions. These are fully functional but may receive lower priority for issue resolution compared to officially supported dialects. We welcome and encourage community contributions to improve these dialects.
@@ -4,6 +4,7 @@ dynamic = ["version", "optional-dependencies"]
4
4
  description = "An easily customizable SQL parser and transpiler"
5
5
  readme = "README.md"
6
6
  authors = [{ name = "Toby Mao", email = "toby.mao@gmail.com" }]
7
+ license = "MIT"
7
8
  license-files = ["LICENSE"]
8
9
  requires-python = ">= 3.9"
9
10
  classifiers = [
@@ -1,7 +1,14 @@
1
1
  # file generated by setuptools-scm
2
2
  # don't change, don't track in version control
3
3
 
4
- __all__ = ["__version__", "__version_tuple__", "version", "version_tuple"]
4
+ __all__ = [
5
+ "__version__",
6
+ "__version_tuple__",
7
+ "version",
8
+ "version_tuple",
9
+ "__commit_id__",
10
+ "commit_id",
11
+ ]
5
12
 
6
13
  TYPE_CHECKING = False
7
14
  if TYPE_CHECKING:
@@ -9,13 +16,19 @@ if TYPE_CHECKING:
9
16
  from typing import Union
10
17
 
11
18
  VERSION_TUPLE = Tuple[Union[int, str], ...]
19
+ COMMIT_ID = Union[str, None]
12
20
  else:
13
21
  VERSION_TUPLE = object
22
+ COMMIT_ID = object
14
23
 
15
24
  version: str
16
25
  __version__: str
17
26
  __version_tuple__: VERSION_TUPLE
18
27
  version_tuple: VERSION_TUPLE
28
+ commit_id: COMMIT_ID
29
+ __commit_id__: COMMIT_ID
19
30
 
20
- __version__ = version = '27.7.0'
21
- __version_tuple__ = version_tuple = (27, 7, 0)
31
+ __version__ = version = '27.9.0'
32
+ __version_tuple__ = version_tuple = (27, 9, 0)
33
+
34
+ __commit_id__ = commit_id = 'ge4e08e8c9'