sqlglot 26.25.1__tar.gz → 26.25.3__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.1 → sqlglot-26.25.3}/CHANGELOG.md +12 -0
  2. {sqlglot-26.25.1 → sqlglot-26.25.3}/PKG-INFO +1 -1
  3. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/_version.py +2 -2
  4. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/dialects/postgres.py +7 -5
  5. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/parser.py +3 -1
  6. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot.egg-info/PKG-INFO +1 -1
  7. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/dialects/test_postgres.py +15 -13
  8. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/test_parser.py +7 -1
  9. {sqlglot-26.25.1 → sqlglot-26.25.3}/.gitignore +0 -0
  10. {sqlglot-26.25.1 → sqlglot-26.25.3}/.gitpod.yml +0 -0
  11. {sqlglot-26.25.1 → sqlglot-26.25.3}/.pre-commit-config.yaml +0 -0
  12. {sqlglot-26.25.1 → sqlglot-26.25.3}/CONTRIBUTING.md +0 -0
  13. {sqlglot-26.25.1 → sqlglot-26.25.3}/LICENSE +0 -0
  14. {sqlglot-26.25.1 → sqlglot-26.25.3}/MANIFEST.in +0 -0
  15. {sqlglot-26.25.1 → sqlglot-26.25.3}/Makefile +0 -0
  16. {sqlglot-26.25.1 → sqlglot-26.25.3}/README.md +0 -0
  17. {sqlglot-26.25.1 → sqlglot-26.25.3}/pyproject.toml +0 -0
  18. {sqlglot-26.25.1 → sqlglot-26.25.3}/setup.cfg +0 -0
  19. {sqlglot-26.25.1 → sqlglot-26.25.3}/setup.py +0 -0
  20. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/__init__.py +0 -0
  21. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/__main__.py +0 -0
  22. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/_typing.py +0 -0
  23. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/dialects/__init__.py +0 -0
  24. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/dialects/athena.py +0 -0
  25. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/dialects/bigquery.py +0 -0
  26. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/dialects/clickhouse.py +0 -0
  27. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/dialects/databricks.py +0 -0
  28. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/dialects/dialect.py +0 -0
  29. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/dialects/doris.py +0 -0
  30. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/dialects/drill.py +0 -0
  31. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/dialects/druid.py +0 -0
  32. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/dialects/duckdb.py +0 -0
  33. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/dialects/dune.py +0 -0
  34. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/dialects/hive.py +0 -0
  35. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/dialects/materialize.py +0 -0
  36. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/dialects/mysql.py +0 -0
  37. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/dialects/oracle.py +0 -0
  38. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/dialects/presto.py +0 -0
  39. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/dialects/prql.py +0 -0
  40. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/dialects/redshift.py +0 -0
  41. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/dialects/risingwave.py +0 -0
  42. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/dialects/snowflake.py +0 -0
  43. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/dialects/spark.py +0 -0
  44. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/dialects/spark2.py +0 -0
  45. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/dialects/sqlite.py +0 -0
  46. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/dialects/starrocks.py +0 -0
  47. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/dialects/tableau.py +0 -0
  48. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/dialects/teradata.py +0 -0
  49. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/dialects/trino.py +0 -0
  50. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/dialects/tsql.py +0 -0
  51. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/diff.py +0 -0
  52. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/errors.py +0 -0
  53. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/executor/__init__.py +0 -0
  54. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/executor/context.py +0 -0
  55. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/executor/env.py +0 -0
  56. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/executor/python.py +0 -0
  57. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/executor/table.py +0 -0
  58. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/expressions.py +0 -0
  59. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/generator.py +0 -0
  60. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/helper.py +0 -0
  61. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/jsonpath.py +0 -0
  62. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/lineage.py +0 -0
  63. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/optimizer/__init__.py +0 -0
  64. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/optimizer/annotate_types.py +0 -0
  65. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/optimizer/canonicalize.py +0 -0
  66. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/optimizer/eliminate_ctes.py +0 -0
  67. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/optimizer/eliminate_joins.py +0 -0
  68. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/optimizer/eliminate_subqueries.py +0 -0
  69. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/optimizer/isolate_table_selects.py +0 -0
  70. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/optimizer/merge_subqueries.py +0 -0
  71. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/optimizer/normalize.py +0 -0
  72. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/optimizer/normalize_identifiers.py +0 -0
  73. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/optimizer/optimize_joins.py +0 -0
  74. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/optimizer/optimizer.py +0 -0
  75. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/optimizer/pushdown_predicates.py +0 -0
  76. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/optimizer/pushdown_projections.py +0 -0
  77. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/optimizer/qualify.py +0 -0
  78. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/optimizer/qualify_columns.py +0 -0
  79. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/optimizer/qualify_tables.py +0 -0
  80. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/optimizer/scope.py +0 -0
  81. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/optimizer/simplify.py +0 -0
  82. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/optimizer/unnest_subqueries.py +0 -0
  83. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/planner.py +0 -0
  84. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/py.typed +0 -0
  85. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/schema.py +0 -0
  86. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/serde.py +0 -0
  87. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/time.py +0 -0
  88. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/tokens.py +0 -0
  89. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/transforms.py +0 -0
  90. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot/trie.py +0 -0
  91. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot.egg-info/SOURCES.txt +0 -0
  92. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot.egg-info/dependency_links.txt +0 -0
  93. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot.egg-info/requires.txt +0 -0
  94. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot.egg-info/top_level.txt +0 -0
  95. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglot.png +0 -0
  96. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglotrs/Cargo.lock +0 -0
  97. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglotrs/Cargo.toml +0 -0
  98. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglotrs/benches/dialect_settings.json +0 -0
  99. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglotrs/benches/long.rs +0 -0
  100. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglotrs/benches/token_type_settings.json +0 -0
  101. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglotrs/benches/tokenizer_dialect_settings.json +0 -0
  102. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglotrs/benches/tokenizer_settings.json +0 -0
  103. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglotrs/pyproject.toml +0 -0
  104. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglotrs/src/lib.rs +0 -0
  105. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglotrs/src/settings.rs +0 -0
  106. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglotrs/src/token.rs +0 -0
  107. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglotrs/src/tokenizer.rs +0 -0
  108. {sqlglot-26.25.1 → sqlglot-26.25.3}/sqlglotrs/src/trie.rs +0 -0
  109. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/__init__.py +0 -0
  110. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/dialects/__init__.py +0 -0
  111. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/dialects/test_athena.py +0 -0
  112. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/dialects/test_bigquery.py +0 -0
  113. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/dialects/test_clickhouse.py +0 -0
  114. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/dialects/test_databricks.py +0 -0
  115. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/dialects/test_dialect.py +0 -0
  116. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/dialects/test_doris.py +0 -0
  117. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/dialects/test_drill.py +0 -0
  118. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/dialects/test_druid.py +0 -0
  119. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/dialects/test_duckdb.py +0 -0
  120. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/dialects/test_dune.py +0 -0
  121. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/dialects/test_hive.py +0 -0
  122. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/dialects/test_materialize.py +0 -0
  123. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/dialects/test_mysql.py +0 -0
  124. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/dialects/test_oracle.py +0 -0
  125. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/dialects/test_presto.py +0 -0
  126. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/dialects/test_prql.py +0 -0
  127. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/dialects/test_redshift.py +0 -0
  128. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/dialects/test_risingwave.py +0 -0
  129. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/dialects/test_snowflake.py +0 -0
  130. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/dialects/test_spark.py +0 -0
  131. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/dialects/test_sqlite.py +0 -0
  132. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/dialects/test_starrocks.py +0 -0
  133. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/dialects/test_tableau.py +0 -0
  134. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/dialects/test_teradata.py +0 -0
  135. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/dialects/test_trino.py +0 -0
  136. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/dialects/test_tsql.py +0 -0
  137. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/identity.sql +0 -0
  138. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/jsonpath/LICENSE +0 -0
  139. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/jsonpath/cts.json +0 -0
  140. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/annotate_functions.sql +0 -0
  141. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/annotate_types.sql +0 -0
  142. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/canonicalize.sql +0 -0
  143. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/eliminate_ctes.sql +0 -0
  144. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/eliminate_joins.sql +0 -0
  145. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/eliminate_subqueries.sql +0 -0
  146. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/isolate_table_selects.sql +0 -0
  147. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/merge_subqueries.sql +0 -0
  148. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/normalize.sql +0 -0
  149. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/normalize_identifiers.sql +0 -0
  150. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/optimize_joins.sql +0 -0
  151. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/optimizer.sql +0 -0
  152. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/pushdown_cte_alias_columns.sql +0 -0
  153. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/pushdown_predicates.sql +0 -0
  154. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/pushdown_projections.sql +0 -0
  155. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/qualify_columns.sql +0 -0
  156. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/qualify_columns__invalid.sql +0 -0
  157. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/qualify_columns__with_invisible.sql +0 -0
  158. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/qualify_columns_ddl.sql +0 -0
  159. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/qualify_tables.sql +0 -0
  160. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/quote_identifiers.sql +0 -0
  161. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/simplify.sql +0 -0
  162. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-ds/call_center.csv.gz +0 -0
  163. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-ds/catalog_page.csv.gz +0 -0
  164. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-ds/catalog_returns.csv.gz +0 -0
  165. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-ds/catalog_sales.csv.gz +0 -0
  166. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-ds/customer.csv.gz +0 -0
  167. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-ds/customer_address.csv.gz +0 -0
  168. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-ds/customer_demographics.csv.gz +0 -0
  169. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-ds/date_dim.csv.gz +0 -0
  170. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-ds/household_demographics.csv.gz +0 -0
  171. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-ds/income_band.csv.gz +0 -0
  172. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-ds/inventory.csv.gz +0 -0
  173. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-ds/item.csv.gz +0 -0
  174. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-ds/promotion.csv.gz +0 -0
  175. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-ds/reason.csv.gz +0 -0
  176. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-ds/ship_mode.csv.gz +0 -0
  177. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-ds/store.csv.gz +0 -0
  178. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-ds/store_returns.csv.gz +0 -0
  179. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-ds/store_sales.csv.gz +0 -0
  180. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-ds/time_dim.csv.gz +0 -0
  181. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-ds/tpc-ds.sql +0 -0
  182. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-ds/warehouse.csv.gz +0 -0
  183. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-ds/web_page.csv.gz +0 -0
  184. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-ds/web_returns.csv.gz +0 -0
  185. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-ds/web_sales.csv.gz +0 -0
  186. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-ds/web_site.csv.gz +0 -0
  187. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-h/customer.csv.gz +0 -0
  188. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-h/lineitem.csv.gz +0 -0
  189. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-h/nation.csv.gz +0 -0
  190. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-h/orders.csv.gz +0 -0
  191. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-h/part.csv.gz +0 -0
  192. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-h/partsupp.csv.gz +0 -0
  193. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-h/region.csv.gz +0 -0
  194. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-h/supplier.csv.gz +0 -0
  195. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/tpc-h/tpc-h.sql +0 -0
  196. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/optimizer/unnest_subqueries.sql +0 -0
  197. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/partial.sql +0 -0
  198. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/fixtures/pretty.sql +0 -0
  199. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/gen_fixtures.py +0 -0
  200. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/helpers.py +0 -0
  201. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/test_build.py +0 -0
  202. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/test_diff.py +0 -0
  203. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/test_docs.py +0 -0
  204. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/test_executor.py +0 -0
  205. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/test_expressions.py +0 -0
  206. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/test_generator.py +0 -0
  207. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/test_helper.py +0 -0
  208. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/test_jsonpath.py +0 -0
  209. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/test_lineage.py +0 -0
  210. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/test_optimizer.py +0 -0
  211. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/test_schema.py +0 -0
  212. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/test_serde.py +0 -0
  213. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/test_time.py +0 -0
  214. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/test_tokens.py +0 -0
  215. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/test_transforms.py +0 -0
  216. {sqlglot-26.25.1 → sqlglot-26.25.3}/tests/test_transpile.py +0 -0
@@ -1,6 +1,16 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ ## [v26.25.2] - 2025-06-04
5
+ ### :sparkles: New Features
6
+ - [`8b5129f`](https://github.com/tobymao/sqlglot/commit/8b5129f288880032f0bf9d649984d82314039af1) - **postgres**: improve pretty-formatting of ARRAY[...] *(commit by [@georgesittas](https://github.com/georgesittas))*
7
+
8
+
9
+ ## [v26.25.1] - 2025-06-04
10
+ ### :wrench: Chores
11
+ - [`440590b`](https://github.com/tobymao/sqlglot/commit/440590bf92ab1281f50b96a1400cbca695d40f0c) - bump sqlglotrs to 0.6.1 *(commit by [@georgesittas](https://github.com/georgesittas))*
12
+
13
+
4
14
  ## [v26.25.0] - 2025-06-03
5
15
  ### :boom: BREAKING CHANGES
6
16
  - 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))*:
@@ -4776,3 +4786,5 @@ Changelog
4776
4786
  [v26.23.0]: https://github.com/tobymao/sqlglot/compare/v26.22.1...v26.23.0
4777
4787
  [v26.24.0]: https://github.com/tobymao/sqlglot/compare/v26.23.0...v26.24.0
4778
4788
  [v26.25.0]: https://github.com/tobymao/sqlglot/compare/v26.24.0...v26.25.0
4789
+ [v26.25.1]: https://github.com/tobymao/sqlglot/compare/v26.25.0...v26.25.1
4790
+ [v26.25.2]: https://github.com/tobymao/sqlglot/compare/v26.25.1...v26.25.2
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlglot
3
- Version: 26.25.1
3
+ Version: 26.25.3
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
@@ -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.1'
21
- __version_tuple__ = version_tuple = (26, 25, 1)
20
+ __version__ = version = '26.25.3'
21
+ __version_tuple__ = version_tuple = (26, 25, 3)
@@ -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"
@@ -8213,6 +8213,8 @@ class Parser(metaclass=_Parser):
8213
8213
  )
8214
8214
 
8215
8215
  def _parse_star_ops(self) -> t.Optional[exp.Expression]:
8216
+ star_token = self._prev
8217
+
8216
8218
  if self._match_text_seq("COLUMNS", "(", advance=False):
8217
8219
  this = self._parse_function()
8218
8220
  if isinstance(this, exp.Columns):
@@ -8226,7 +8228,7 @@ class Parser(metaclass=_Parser):
8226
8228
  "replace": self._parse_star_op("REPLACE"),
8227
8229
  "rename": self._parse_star_op("RENAME"),
8228
8230
  },
8229
- )
8231
+ ).update_positions(star_token)
8230
8232
 
8231
8233
  def _parse_grant_privilege(self) -> t.Optional[exp.GrantPrivilege]:
8232
8234
  privilege_parts = []
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlglot
3
- Version: 26.25.1
3
+ Version: 26.25.3
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
@@ -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={
@@ -957,7 +957,7 @@ class TestParser(unittest.TestCase):
957
957
  ast = parse_one("YEAR(a) /* sqlglot.anon */")
958
958
  self.assertIsInstance(ast, exp.Year)
959
959
 
960
- def test_identifier_meta(self):
960
+ def test_token_position_meta(self):
961
961
  ast = parse_one(
962
962
  "SELECT a, b FROM test_schema.test_table_a UNION ALL SELECT c, d FROM test_catalog.test_schema.test_table_b"
963
963
  )
@@ -988,6 +988,12 @@ class TestParser(unittest.TestCase):
988
988
  ast = parse_one("SELECT FOO()")
989
989
  self.assertEqual(ast.find(exp.Anonymous).meta, {"line": 1, "col": 10, "start": 7, "end": 9})
990
990
 
991
+ ast = parse_one("SELECT * FROM t")
992
+ self.assertEqual(ast.find(exp.Star).meta, {"line": 1, "col": 8, "start": 7, "end": 7})
993
+
994
+ ast = parse_one("SELECT t.* FROM t")
995
+ self.assertEqual(ast.find(exp.Star).meta, {"line": 1, "col": 10, "start": 9, "end": 9})
996
+
991
997
  def test_quoted_identifier_meta(self):
992
998
  sql = 'SELECT "a" FROM "test_schema"."test_table_a"'
993
999
  ast = parse_one(sql)
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