sqlglot 26.25.0__tar.gz → 26.25.2__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 (216) hide show
  1. {sqlglot-26.25.0 → sqlglot-26.25.2}/CHANGELOG.md +65 -0
  2. {sqlglot-26.25.0 → sqlglot-26.25.2}/PKG-INFO +2 -2
  3. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/_version.py +2 -2
  4. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/dialects/postgres.py +7 -5
  5. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot.egg-info/PKG-INFO +2 -2
  6. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot.egg-info/requires.txt +1 -1
  7. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglotrs/Cargo.lock +1 -1
  8. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglotrs/Cargo.toml +1 -1
  9. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/dialects/test_postgres.py +15 -13
  10. {sqlglot-26.25.0 → sqlglot-26.25.2}/.gitignore +0 -0
  11. {sqlglot-26.25.0 → sqlglot-26.25.2}/.gitpod.yml +0 -0
  12. {sqlglot-26.25.0 → sqlglot-26.25.2}/.pre-commit-config.yaml +0 -0
  13. {sqlglot-26.25.0 → sqlglot-26.25.2}/CONTRIBUTING.md +0 -0
  14. {sqlglot-26.25.0 → sqlglot-26.25.2}/LICENSE +0 -0
  15. {sqlglot-26.25.0 → sqlglot-26.25.2}/MANIFEST.in +0 -0
  16. {sqlglot-26.25.0 → sqlglot-26.25.2}/Makefile +0 -0
  17. {sqlglot-26.25.0 → sqlglot-26.25.2}/README.md +0 -0
  18. {sqlglot-26.25.0 → sqlglot-26.25.2}/pyproject.toml +0 -0
  19. {sqlglot-26.25.0 → sqlglot-26.25.2}/setup.cfg +0 -0
  20. {sqlglot-26.25.0 → sqlglot-26.25.2}/setup.py +0 -0
  21. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/__init__.py +0 -0
  22. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/__main__.py +0 -0
  23. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/_typing.py +0 -0
  24. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/dialects/__init__.py +0 -0
  25. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/dialects/athena.py +0 -0
  26. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/dialects/bigquery.py +0 -0
  27. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/dialects/clickhouse.py +0 -0
  28. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/dialects/databricks.py +0 -0
  29. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/dialects/dialect.py +0 -0
  30. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/dialects/doris.py +0 -0
  31. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/dialects/drill.py +0 -0
  32. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/dialects/druid.py +0 -0
  33. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/dialects/duckdb.py +0 -0
  34. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/dialects/dune.py +0 -0
  35. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/dialects/hive.py +0 -0
  36. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/dialects/materialize.py +0 -0
  37. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/dialects/mysql.py +0 -0
  38. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/dialects/oracle.py +0 -0
  39. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/dialects/presto.py +0 -0
  40. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/dialects/prql.py +0 -0
  41. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/dialects/redshift.py +0 -0
  42. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/dialects/risingwave.py +0 -0
  43. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/dialects/snowflake.py +0 -0
  44. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/dialects/spark.py +0 -0
  45. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/dialects/spark2.py +0 -0
  46. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/dialects/sqlite.py +0 -0
  47. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/dialects/starrocks.py +0 -0
  48. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/dialects/tableau.py +0 -0
  49. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/dialects/teradata.py +0 -0
  50. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/dialects/trino.py +0 -0
  51. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/dialects/tsql.py +0 -0
  52. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/diff.py +0 -0
  53. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/errors.py +0 -0
  54. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/executor/__init__.py +0 -0
  55. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/executor/context.py +0 -0
  56. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/executor/env.py +0 -0
  57. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/executor/python.py +0 -0
  58. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/executor/table.py +0 -0
  59. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/expressions.py +0 -0
  60. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/generator.py +0 -0
  61. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/helper.py +0 -0
  62. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/jsonpath.py +0 -0
  63. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/lineage.py +0 -0
  64. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/optimizer/__init__.py +0 -0
  65. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/optimizer/annotate_types.py +0 -0
  66. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/optimizer/canonicalize.py +0 -0
  67. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/optimizer/eliminate_ctes.py +0 -0
  68. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/optimizer/eliminate_joins.py +0 -0
  69. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/optimizer/eliminate_subqueries.py +0 -0
  70. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/optimizer/isolate_table_selects.py +0 -0
  71. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/optimizer/merge_subqueries.py +0 -0
  72. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/optimizer/normalize.py +0 -0
  73. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/optimizer/normalize_identifiers.py +0 -0
  74. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/optimizer/optimize_joins.py +0 -0
  75. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/optimizer/optimizer.py +0 -0
  76. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/optimizer/pushdown_predicates.py +0 -0
  77. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/optimizer/pushdown_projections.py +0 -0
  78. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/optimizer/qualify.py +0 -0
  79. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/optimizer/qualify_columns.py +0 -0
  80. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/optimizer/qualify_tables.py +0 -0
  81. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/optimizer/scope.py +0 -0
  82. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/optimizer/simplify.py +0 -0
  83. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/optimizer/unnest_subqueries.py +0 -0
  84. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/parser.py +0 -0
  85. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/planner.py +0 -0
  86. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/py.typed +0 -0
  87. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/schema.py +0 -0
  88. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/serde.py +0 -0
  89. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/time.py +0 -0
  90. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/tokens.py +0 -0
  91. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/transforms.py +0 -0
  92. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot/trie.py +0 -0
  93. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot.egg-info/SOURCES.txt +0 -0
  94. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot.egg-info/dependency_links.txt +0 -0
  95. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot.egg-info/top_level.txt +0 -0
  96. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglot.png +0 -0
  97. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglotrs/benches/dialect_settings.json +0 -0
  98. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglotrs/benches/long.rs +0 -0
  99. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglotrs/benches/token_type_settings.json +0 -0
  100. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglotrs/benches/tokenizer_dialect_settings.json +0 -0
  101. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglotrs/benches/tokenizer_settings.json +0 -0
  102. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglotrs/pyproject.toml +0 -0
  103. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglotrs/src/lib.rs +0 -0
  104. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglotrs/src/settings.rs +0 -0
  105. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglotrs/src/token.rs +0 -0
  106. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglotrs/src/tokenizer.rs +0 -0
  107. {sqlglot-26.25.0 → sqlglot-26.25.2}/sqlglotrs/src/trie.rs +0 -0
  108. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/__init__.py +0 -0
  109. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/dialects/__init__.py +0 -0
  110. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/dialects/test_athena.py +0 -0
  111. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/dialects/test_bigquery.py +0 -0
  112. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/dialects/test_clickhouse.py +0 -0
  113. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/dialects/test_databricks.py +0 -0
  114. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/dialects/test_dialect.py +0 -0
  115. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/dialects/test_doris.py +0 -0
  116. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/dialects/test_drill.py +0 -0
  117. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/dialects/test_druid.py +0 -0
  118. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/dialects/test_duckdb.py +0 -0
  119. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/dialects/test_dune.py +0 -0
  120. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/dialects/test_hive.py +0 -0
  121. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/dialects/test_materialize.py +0 -0
  122. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/dialects/test_mysql.py +0 -0
  123. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/dialects/test_oracle.py +0 -0
  124. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/dialects/test_presto.py +0 -0
  125. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/dialects/test_prql.py +0 -0
  126. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/dialects/test_redshift.py +0 -0
  127. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/dialects/test_risingwave.py +0 -0
  128. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/dialects/test_snowflake.py +0 -0
  129. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/dialects/test_spark.py +0 -0
  130. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/dialects/test_sqlite.py +0 -0
  131. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/dialects/test_starrocks.py +0 -0
  132. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/dialects/test_tableau.py +0 -0
  133. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/dialects/test_teradata.py +0 -0
  134. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/dialects/test_trino.py +0 -0
  135. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/dialects/test_tsql.py +0 -0
  136. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/identity.sql +0 -0
  137. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/jsonpath/LICENSE +0 -0
  138. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/jsonpath/cts.json +0 -0
  139. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/annotate_functions.sql +0 -0
  140. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/annotate_types.sql +0 -0
  141. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/canonicalize.sql +0 -0
  142. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/eliminate_ctes.sql +0 -0
  143. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/eliminate_joins.sql +0 -0
  144. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/eliminate_subqueries.sql +0 -0
  145. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/isolate_table_selects.sql +0 -0
  146. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/merge_subqueries.sql +0 -0
  147. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/normalize.sql +0 -0
  148. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/normalize_identifiers.sql +0 -0
  149. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/optimize_joins.sql +0 -0
  150. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/optimizer.sql +0 -0
  151. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/pushdown_cte_alias_columns.sql +0 -0
  152. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/pushdown_predicates.sql +0 -0
  153. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/pushdown_projections.sql +0 -0
  154. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/qualify_columns.sql +0 -0
  155. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/qualify_columns__invalid.sql +0 -0
  156. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/qualify_columns__with_invisible.sql +0 -0
  157. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/qualify_columns_ddl.sql +0 -0
  158. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/qualify_tables.sql +0 -0
  159. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/quote_identifiers.sql +0 -0
  160. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/simplify.sql +0 -0
  161. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-ds/call_center.csv.gz +0 -0
  162. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-ds/catalog_page.csv.gz +0 -0
  163. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-ds/catalog_returns.csv.gz +0 -0
  164. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-ds/catalog_sales.csv.gz +0 -0
  165. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-ds/customer.csv.gz +0 -0
  166. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-ds/customer_address.csv.gz +0 -0
  167. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-ds/customer_demographics.csv.gz +0 -0
  168. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-ds/date_dim.csv.gz +0 -0
  169. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-ds/household_demographics.csv.gz +0 -0
  170. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-ds/income_band.csv.gz +0 -0
  171. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-ds/inventory.csv.gz +0 -0
  172. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-ds/item.csv.gz +0 -0
  173. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-ds/promotion.csv.gz +0 -0
  174. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-ds/reason.csv.gz +0 -0
  175. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-ds/ship_mode.csv.gz +0 -0
  176. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-ds/store.csv.gz +0 -0
  177. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-ds/store_returns.csv.gz +0 -0
  178. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-ds/store_sales.csv.gz +0 -0
  179. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-ds/time_dim.csv.gz +0 -0
  180. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-ds/tpc-ds.sql +0 -0
  181. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-ds/warehouse.csv.gz +0 -0
  182. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-ds/web_page.csv.gz +0 -0
  183. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-ds/web_returns.csv.gz +0 -0
  184. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-ds/web_sales.csv.gz +0 -0
  185. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-ds/web_site.csv.gz +0 -0
  186. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-h/customer.csv.gz +0 -0
  187. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-h/lineitem.csv.gz +0 -0
  188. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-h/nation.csv.gz +0 -0
  189. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-h/orders.csv.gz +0 -0
  190. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-h/part.csv.gz +0 -0
  191. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-h/partsupp.csv.gz +0 -0
  192. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-h/region.csv.gz +0 -0
  193. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-h/supplier.csv.gz +0 -0
  194. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/tpc-h/tpc-h.sql +0 -0
  195. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/optimizer/unnest_subqueries.sql +0 -0
  196. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/partial.sql +0 -0
  197. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/fixtures/pretty.sql +0 -0
  198. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/gen_fixtures.py +0 -0
  199. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/helpers.py +0 -0
  200. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/test_build.py +0 -0
  201. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/test_diff.py +0 -0
  202. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/test_docs.py +0 -0
  203. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/test_executor.py +0 -0
  204. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/test_expressions.py +0 -0
  205. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/test_generator.py +0 -0
  206. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/test_helper.py +0 -0
  207. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/test_jsonpath.py +0 -0
  208. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/test_lineage.py +0 -0
  209. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/test_optimizer.py +0 -0
  210. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/test_parser.py +0 -0
  211. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/test_schema.py +0 -0
  212. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/test_serde.py +0 -0
  213. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/test_time.py +0 -0
  214. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/test_tokens.py +0 -0
  215. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/test_transforms.py +0 -0
  216. {sqlglot-26.25.0 → sqlglot-26.25.2}/tests/test_transpile.py +0 -0
@@ -1,6 +1,69 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ ## [v26.25.1] - 2025-06-04
5
+ ### :wrench: Chores
6
+ - [`440590b`](https://github.com/tobymao/sqlglot/commit/440590bf92ab1281f50b96a1400cbca695d40f0c) - bump sqlglotrs to 0.6.1 *(commit by [@georgesittas](https://github.com/georgesittas))*
7
+
8
+
9
+ ## [v26.25.0] - 2025-06-03
10
+ ### :boom: BREAKING CHANGES
11
+ - due to [`72ce404`](https://github.com/tobymao/sqlglot/commit/72ce40405625239a0d6763d502e5af8b12abfe9b) - Refactor ALTER TABLE ADD parsing *(PR [#5144](https://github.com/tobymao/sqlglot/pull/5144) by [@VaggelisD](https://github.com/VaggelisD))*:
12
+
13
+ Refactor ALTER TABLE ADD parsing (#5144)
14
+
15
+ - due to [`e73ddb7`](https://github.com/tobymao/sqlglot/commit/e73ddb733b7f120ae74054e6d4dc7d458f59ac50) - preserve TIMESTAMP on roundtrip *(PR [#5145](https://github.com/tobymao/sqlglot/pull/5145) by [@georgesittas](https://github.com/georgesittas))*:
16
+
17
+ preserve TIMESTAMP on roundtrip (#5145)
18
+
19
+ - due to [`f6124c6`](https://github.com/tobymao/sqlglot/commit/f6124c6343f67563fc19f617891ecfc145a642db) - return token vector in `tokenize` even on failure *(PR [#5155](https://github.com/tobymao/sqlglot/pull/5155) by [@georgesittas](https://github.com/georgesittas))*:
20
+
21
+ return token vector in `tokenize` even on failure (#5155)
22
+
23
+ - due to [`64c37f1`](https://github.com/tobymao/sqlglot/commit/64c37f147366fe87ae187996ecb3c9a5afa7c264) - bump sqlglotrs to 0.6.0 *(commit by [@georgesittas](https://github.com/georgesittas))*:
24
+
25
+ bump sqlglotrs to 0.6.0
26
+
27
+
28
+ ### :sparkles: New Features
29
+ - [`93b402a`](https://github.com/tobymao/sqlglot/commit/93b402abc74e642ed312db585b33315674a450cd) - **parser**: support SELECT, FROM, WHERE with pipe syntax *(PR [#5128](https://github.com/tobymao/sqlglot/pull/5128) by [@geooo109](https://github.com/geooo109))*
30
+ - [`1a8e78b`](https://github.com/tobymao/sqlglot/commit/1a8e78bd84e006023d5d3ea561504587dfbb55a9) - **parser**: ORDER BY with pipe syntax *(PR [#5153](https://github.com/tobymao/sqlglot/pull/5153) by [@geooo109](https://github.com/geooo109))*
31
+ - [`966ad95`](https://github.com/tobymao/sqlglot/commit/966ad95432d5f8e29ade36d8271a5c489c207324) - **tsql**: add convert style 126 *(PR [#5157](https://github.com/tobymao/sqlglot/pull/5157) by [@pa1ch](https://github.com/pa1ch))*
32
+ - [`b7ac6ff`](https://github.com/tobymao/sqlglot/commit/b7ac6ff4680ff619be4b0ddb01f61f916ed09d58) - **parser**: LIMIT/OFFSET pipe syntax *(PR [#5159](https://github.com/tobymao/sqlglot/pull/5159) by [@geooo109](https://github.com/geooo109))*
33
+ - [`cfc158d`](https://github.com/tobymao/sqlglot/commit/cfc158d753d4f43d12c3b502633d29e43dcc5569) - **snowflake**: transpile STRTOK_TO_ARRAY to duckdb *(PR [#5165](https://github.com/tobymao/sqlglot/pull/5165) by [@geooo109](https://github.com/geooo109))*
34
+ - :arrow_lower_right: *addresses issue [#5160](https://github.com/tobymao/sqlglot/issues/5160) opened by [@kyle-cheung](https://github.com/kyle-cheung)*
35
+ - [`ff0f30b`](https://github.com/tobymao/sqlglot/commit/ff0f30bcf7d0d74b26a703eaa632e1be15b3c001) - support ARRAY_REMOVE *(PR [#5163](https://github.com/tobymao/sqlglot/pull/5163) by [@geooo109](https://github.com/geooo109))*
36
+ - [`9cac01f`](https://github.com/tobymao/sqlglot/commit/9cac01f6b4a5c93b55f5b68f21cb104932880a0e) - **tsql**: support FOR XML syntax *(PR [#5167](https://github.com/tobymao/sqlglot/pull/5167) by [@geooo109](https://github.com/geooo109))*
37
+ - :arrow_lower_right: *addresses issue [#5161](https://github.com/tobymao/sqlglot/issues/5161) opened by [@codykonior](https://github.com/codykonior)*
38
+
39
+ ### :bug: Bug Fixes
40
+ - [`f3aeb37`](https://github.com/tobymao/sqlglot/commit/f3aeb374351a0b1b3c75945718d8ea42f8926b62) - **tsql**: properly parse and generate ALTER SET *(PR [#5143](https://github.com/tobymao/sqlglot/pull/5143) by [@georgesittas](https://github.com/georgesittas))*
41
+ - :arrow_lower_right: *fixes issue [#5135](https://github.com/tobymao/sqlglot/issues/5135) opened by [@codykonior](https://github.com/codykonior)*
42
+ - [`72ce404`](https://github.com/tobymao/sqlglot/commit/72ce40405625239a0d6763d502e5af8b12abfe9b) - Refactor ALTER TABLE ADD parsing *(PR [#5144](https://github.com/tobymao/sqlglot/pull/5144) by [@VaggelisD](https://github.com/VaggelisD))*
43
+ - :arrow_lower_right: *fixes issue [#5129](https://github.com/tobymao/sqlglot/issues/5129) opened by [@Mevrael](https://github.com/Mevrael)*
44
+ - [`e73ddb7`](https://github.com/tobymao/sqlglot/commit/e73ddb733b7f120ae74054e6d4dc7d458f59ac50) - **mysql**: preserve TIMESTAMP on roundtrip *(PR [#5145](https://github.com/tobymao/sqlglot/pull/5145) by [@georgesittas](https://github.com/georgesittas))*
45
+ - :arrow_lower_right: *fixes issue [#5127](https://github.com/tobymao/sqlglot/issues/5127) opened by [@AhlamHani](https://github.com/AhlamHani)*
46
+ - [`4f8c73d`](https://github.com/tobymao/sqlglot/commit/4f8c73d60eecebc601c60ee8c7819458435e34b8) - **hive**: STRUCT column names and data type should be separated by ':' in hive *(PR [#5147](https://github.com/tobymao/sqlglot/pull/5147) by [@tsamaras](https://github.com/tsamaras))*
47
+ - [`e2a488f`](https://github.com/tobymao/sqlglot/commit/e2a488f48f3e036566462463bbc58cc6a1c7492e) - Error on columns mismatch in pushdown_projections ignores dialect *(PR [#5151](https://github.com/tobymao/sqlglot/pull/5151) by [@snovik75](https://github.com/snovik75))*
48
+ - [`1a35365`](https://github.com/tobymao/sqlglot/commit/1a35365a3bb1ef56e8da0023271cbe3108e0ccb1) - avoid generating nested comments when not supported *(PR [#5158](https://github.com/tobymao/sqlglot/pull/5158) by [@georgesittas](https://github.com/georgesittas))*
49
+ - :arrow_lower_right: *fixes issue [#5132](https://github.com/tobymao/sqlglot/issues/5132) opened by [@patricksurry](https://github.com/patricksurry)*
50
+ - [`f6124c6`](https://github.com/tobymao/sqlglot/commit/f6124c6343f67563fc19f617891ecfc145a642db) - **rust-tokenizer**: return token vector in `tokenize` even on failure *(PR [#5155](https://github.com/tobymao/sqlglot/pull/5155) by [@georgesittas](https://github.com/georgesittas))*
51
+ - :arrow_lower_right: *fixes issue [#5148](https://github.com/tobymao/sqlglot/issues/5148) opened by [@kamoser](https://github.com/kamoser)*
52
+ - [`760a606`](https://github.com/tobymao/sqlglot/commit/760a6062d5f259488e471af9c1d33e200066e9dc) - **postgres**: support decimal values in INTERVAL expressions fixes [#5168](https://github.com/tobymao/sqlglot/pull/5168) *(commit by [@georgesittas](https://github.com/georgesittas))*
53
+
54
+ ### :recycle: Refactors
55
+ - [`86c6b90`](https://github.com/tobymao/sqlglot/commit/86c6b90d21b204b4376639affa142e8cee509065) - **tsql**: XML_OPTIONS *(commit by [@geooo109](https://github.com/geooo109))*
56
+
57
+ ### :wrench: Chores
58
+ - [`5752a87`](https://github.com/tobymao/sqlglot/commit/5752a87406b736317e4dc5cce9ae05cbc5c19547) - udpate benchmarking framework *(PR [#5146](https://github.com/tobymao/sqlglot/pull/5146) by [@benfdking](https://github.com/benfdking))*
59
+ - [`0ae297a`](https://github.com/tobymao/sqlglot/commit/0ae297a01262cf323e225fe578bdeab2230c6fd5) - compare performance on main vs pr branch *(PR [#5149](https://github.com/tobymao/sqlglot/pull/5149) by [@georgesittas](https://github.com/georgesittas))*
60
+ - [`180963b`](https://github.com/tobymao/sqlglot/commit/180963b8cf25d9ff83d2347859b7f46398af5000) - handle pipe syntax unsupported operators more gracefully *(commit by [@georgesittas](https://github.com/georgesittas))*
61
+ - [`6c8d61a`](https://github.com/tobymao/sqlglot/commit/6c8d61ae1ef5b645835ccd683063845dd801e8d2) - include optimization benchmarks *(PR [#5152](https://github.com/tobymao/sqlglot/pull/5152) by [@georgesittas](https://github.com/georgesittas))*
62
+ - [`bc5c66c`](https://github.com/tobymao/sqlglot/commit/bc5c66c9210a472147d98a94c34b4bb582ade8b1) - Run benchmark job if /benchmark comment *(PR [#5164](https://github.com/tobymao/sqlglot/pull/5164) by [@VaggelisD](https://github.com/VaggelisD))*
63
+ - [`742b2b7`](https://github.com/tobymao/sqlglot/commit/742b2b770b88a2e901d2f84af00db821da441e4c) - Fix benchmark CI to include issue number *(PR [#5166](https://github.com/tobymao/sqlglot/pull/5166) by [@VaggelisD](https://github.com/VaggelisD))*
64
+ - [`64c37f1`](https://github.com/tobymao/sqlglot/commit/64c37f147366fe87ae187996ecb3c9a5afa7c264) - bump sqlglotrs to 0.6.0 *(commit by [@georgesittas](https://github.com/georgesittas))*
65
+
66
+
4
67
  ## [v26.24.0] - 2025-05-30
5
68
  ### :boom: BREAKING CHANGES
6
69
  - due to [`c484ca3`](https://github.com/tobymao/sqlglot/commit/c484ca39bad750a96b62e2edae85612cac66ba30) - recognize ARRAY_CONCAT_AGG as an aggregate function *(PR [#5141](https://github.com/tobymao/sqlglot/pull/5141) by [@georgesittas](https://github.com/georgesittas))*:
@@ -4717,3 +4780,5 @@ Changelog
4717
4780
  [v26.22.1]: https://github.com/tobymao/sqlglot/compare/v26.22.0...v26.22.1
4718
4781
  [v26.23.0]: https://github.com/tobymao/sqlglot/compare/v26.22.1...v26.23.0
4719
4782
  [v26.24.0]: https://github.com/tobymao/sqlglot/compare/v26.23.0...v26.24.0
4783
+ [v26.25.0]: https://github.com/tobymao/sqlglot/compare/v26.24.0...v26.25.0
4784
+ [v26.25.1]: https://github.com/tobymao/sqlglot/compare/v26.25.0...v26.25.1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlglot
3
- Version: 26.25.0
3
+ Version: 26.25.2
4
4
  Summary: An easily customizable SQL parser and transpiler
5
5
  Author-email: Toby Mao <toby.mao@gmail.com>
6
6
  License: MIT License
@@ -55,7 +55,7 @@ Requires-Dist: typing_extensions; extra == "dev"
55
55
  Requires-Dist: maturin<2.0,>=1.4; extra == "dev"
56
56
  Requires-Dist: pyperf; extra == "dev"
57
57
  Provides-Extra: rs
58
- Requires-Dist: sqlglotrs==0.6.0; extra == "rs"
58
+ Requires-Dist: sqlglotrs==0.6.1; extra == "rs"
59
59
  Dynamic: license-file
60
60
  Dynamic: provides-extra
61
61
 
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '26.25.0'
21
- __version_tuple__ = version_tuple = (26, 25, 0)
20
+ __version__ = version = '26.25.2'
21
+ __version_tuple__ = version_tuple = (26, 25, 2)
@@ -13,6 +13,7 @@ from sqlglot.dialects.dialect import (
13
13
  datestrtodate_sql,
14
14
  build_formatted_time,
15
15
  filter_array_using_unnest,
16
+ inline_array_sql,
16
17
  json_extract_segments,
17
18
  json_path_key_only_name,
18
19
  max_or_greatest,
@@ -728,11 +729,12 @@ class Postgres(Dialect):
728
729
 
729
730
  def array_sql(self, expression: exp.Array) -> str:
730
731
  exprs = expression.expressions
731
- return (
732
- f"{self.normalize_func('ARRAY')}({self.sql(exprs[0])})"
733
- if isinstance(seq_get(exprs, 0), exp.Select)
734
- else f"{self.normalize_func('ARRAY')}[{self.expressions(expression, flat=True)}]"
735
- )
732
+ func_name = self.normalize_func("ARRAY")
733
+
734
+ if isinstance(seq_get(exprs, 0), exp.Select):
735
+ return f"{func_name}({self.sql(exprs[0])})"
736
+
737
+ return f"{func_name}{inline_array_sql(self, expression)}"
736
738
 
737
739
  def computedcolumnconstraint_sql(self, expression: exp.ComputedColumnConstraint) -> str:
738
740
  return f"GENERATED ALWAYS AS ({self.sql(expression, 'this')}) STORED"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlglot
3
- Version: 26.25.0
3
+ Version: 26.25.2
4
4
  Summary: An easily customizable SQL parser and transpiler
5
5
  Author-email: Toby Mao <toby.mao@gmail.com>
6
6
  License: MIT License
@@ -55,7 +55,7 @@ Requires-Dist: typing_extensions; extra == "dev"
55
55
  Requires-Dist: maturin<2.0,>=1.4; extra == "dev"
56
56
  Requires-Dist: pyperf; extra == "dev"
57
57
  Provides-Extra: rs
58
- Requires-Dist: sqlglotrs==0.6.0; extra == "rs"
58
+ Requires-Dist: sqlglotrs==0.6.1; extra == "rs"
59
59
  Dynamic: license-file
60
60
  Dynamic: provides-extra
61
61
 
@@ -16,4 +16,4 @@ maturin<2.0,>=1.4
16
16
  pyperf
17
17
 
18
18
  [rs]
19
- sqlglotrs==0.6.0
19
+ sqlglotrs==0.6.1
@@ -502,7 +502,7 @@ dependencies = [
502
502
 
503
503
  [[package]]
504
504
  name = "sqlglotrs"
505
- version = "0.6.0"
505
+ version = "0.6.1"
506
506
  dependencies = [
507
507
  "criterion",
508
508
  "pyo3",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "sqlglotrs"
3
- version = "0.6.0"
3
+ version = "0.6.1"
4
4
  edition = "2021"
5
5
  license = "MIT"
6
6
 
@@ -8,19 +8,6 @@ class TestPostgres(Validator):
8
8
  dialect = "postgres"
9
9
 
10
10
  def test_postgres(self):
11
- self.validate_all(
12
- "x ? y",
13
- write={
14
- "": "JSONB_CONTAINS(x, y)",
15
- "postgres": "x ? y",
16
- },
17
- )
18
-
19
- self.validate_identity("SHA384(x)")
20
- self.validate_identity("1.x", "1. AS x")
21
- self.validate_identity("|/ x", "SQRT(x)")
22
- self.validate_identity("||/ x", "CBRT(x)")
23
-
24
11
  expr = self.parse_one("SELECT * FROM r CROSS JOIN LATERAL UNNEST(ARRAY[1]) AS s(location)")
25
12
  unnest = expr.args["joins"][0].this.this
26
13
  unnest.assert_is(exp.Unnest)
@@ -31,6 +18,14 @@ class TestPostgres(Validator):
31
18
  self.assertIsInstance(expr, exp.Alter)
32
19
  self.assertEqual(expr.sql(dialect="postgres"), alter_table_only)
33
20
 
21
+ sql = "ARRAY[x" + ",x" * 27 + "]"
22
+ expected_sql = "ARRAY[\n x" + (",\n x" * 27) + "\n]"
23
+ self.validate_identity(sql, expected_sql, pretty=True)
24
+
25
+ self.validate_identity("SHA384(x)")
26
+ self.validate_identity("1.x", "1. AS x")
27
+ self.validate_identity("|/ x", "SQRT(x)")
28
+ self.validate_identity("||/ x", "CBRT(x)")
34
29
  self.validate_identity("SELECT EXTRACT(QUARTER FROM CAST('2025-04-26' AS DATE))")
35
30
  self.validate_identity("SELECT DATE_TRUNC('QUARTER', CAST('2025-04-26' AS DATE))")
36
31
  self.validate_identity("STRING_TO_ARRAY('xx~^~yy~^~zz', '~^~', 'yy')")
@@ -379,6 +374,13 @@ FROM json_data, field_ids""",
379
374
  pretty=True,
380
375
  )
381
376
 
377
+ self.validate_all(
378
+ "x ? y",
379
+ write={
380
+ "": "JSONB_CONTAINS(x, y)",
381
+ "postgres": "x ? y",
382
+ },
383
+ )
382
384
  self.validate_all(
383
385
  "SELECT CURRENT_TIMESTAMP + INTERVAL '-3 MONTH'",
384
386
  read={
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
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