sqlglot 27.13.0__tar.gz → 27.13.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 (226) hide show
  1. {sqlglot-27.13.0 → sqlglot-27.13.2}/CHANGELOG.md +62 -0
  2. {sqlglot-27.13.0 → sqlglot-27.13.2}/PKG-INFO +1 -1
  3. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/_version.py +3 -3
  4. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/snowflake.py +0 -1
  5. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/generator.py +2 -1
  6. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/parser.py +12 -6
  7. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/tokens.py +0 -2
  8. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot.egg-info/PKG-INFO +1 -1
  9. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_postgres.py +4 -0
  10. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_snowflake.py +4 -1
  11. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/identity.sql +2 -0
  12. {sqlglot-27.13.0 → sqlglot-27.13.2}/.gitignore +0 -0
  13. {sqlglot-27.13.0 → sqlglot-27.13.2}/.gitpod.yml +0 -0
  14. {sqlglot-27.13.0 → sqlglot-27.13.2}/.pre-commit-config.yaml +0 -0
  15. {sqlglot-27.13.0 → sqlglot-27.13.2}/CONTRIBUTING.md +0 -0
  16. {sqlglot-27.13.0 → sqlglot-27.13.2}/LICENSE +0 -0
  17. {sqlglot-27.13.0 → sqlglot-27.13.2}/MANIFEST.in +0 -0
  18. {sqlglot-27.13.0 → sqlglot-27.13.2}/Makefile +0 -0
  19. {sqlglot-27.13.0 → sqlglot-27.13.2}/README.md +0 -0
  20. {sqlglot-27.13.0 → sqlglot-27.13.2}/pyproject.toml +0 -0
  21. {sqlglot-27.13.0 → sqlglot-27.13.2}/setup.cfg +0 -0
  22. {sqlglot-27.13.0 → sqlglot-27.13.2}/setup.py +0 -0
  23. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/__init__.py +0 -0
  24. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/__main__.py +0 -0
  25. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/_typing.py +0 -0
  26. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/__init__.py +0 -0
  27. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/athena.py +0 -0
  28. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/bigquery.py +0 -0
  29. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/clickhouse.py +0 -0
  30. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/databricks.py +0 -0
  31. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/dialect.py +0 -0
  32. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/doris.py +0 -0
  33. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/dremio.py +0 -0
  34. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/drill.py +0 -0
  35. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/druid.py +0 -0
  36. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/duckdb.py +0 -0
  37. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/dune.py +0 -0
  38. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/exasol.py +0 -0
  39. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/fabric.py +0 -0
  40. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/hive.py +0 -0
  41. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/materialize.py +0 -0
  42. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/mysql.py +0 -0
  43. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/oracle.py +0 -0
  44. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/postgres.py +0 -0
  45. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/presto.py +0 -0
  46. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/prql.py +0 -0
  47. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/redshift.py +0 -0
  48. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/risingwave.py +0 -0
  49. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/singlestore.py +0 -0
  50. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/spark.py +0 -0
  51. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/spark2.py +0 -0
  52. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/sqlite.py +0 -0
  53. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/starrocks.py +0 -0
  54. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/tableau.py +0 -0
  55. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/teradata.py +0 -0
  56. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/trino.py +0 -0
  57. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/tsql.py +0 -0
  58. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/diff.py +0 -0
  59. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/errors.py +0 -0
  60. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/executor/__init__.py +0 -0
  61. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/executor/context.py +0 -0
  62. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/executor/env.py +0 -0
  63. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/executor/python.py +0 -0
  64. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/executor/table.py +0 -0
  65. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/expressions.py +0 -0
  66. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/helper.py +0 -0
  67. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/jsonpath.py +0 -0
  68. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/lineage.py +0 -0
  69. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/__init__.py +0 -0
  70. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/annotate_types.py +0 -0
  71. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/canonicalize.py +0 -0
  72. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/eliminate_ctes.py +0 -0
  73. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/eliminate_joins.py +0 -0
  74. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/eliminate_subqueries.py +0 -0
  75. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/isolate_table_selects.py +0 -0
  76. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/merge_subqueries.py +0 -0
  77. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/normalize.py +0 -0
  78. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/normalize_identifiers.py +0 -0
  79. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/optimize_joins.py +0 -0
  80. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/optimizer.py +0 -0
  81. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/pushdown_predicates.py +0 -0
  82. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/pushdown_projections.py +0 -0
  83. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/qualify.py +0 -0
  84. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/qualify_columns.py +0 -0
  85. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/qualify_tables.py +0 -0
  86. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/scope.py +0 -0
  87. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/simplify.py +0 -0
  88. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/unnest_subqueries.py +0 -0
  89. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/planner.py +0 -0
  90. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/py.typed +0 -0
  91. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/schema.py +0 -0
  92. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/serde.py +0 -0
  93. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/time.py +0 -0
  94. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/transforms.py +0 -0
  95. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/trie.py +0 -0
  96. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot.egg-info/SOURCES.txt +0 -0
  97. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot.egg-info/dependency_links.txt +0 -0
  98. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot.egg-info/requires.txt +0 -0
  99. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot.egg-info/top_level.txt +0 -0
  100. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot.png +0 -0
  101. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglotrs/Cargo.lock +0 -0
  102. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglotrs/Cargo.toml +0 -0
  103. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglotrs/benches/dialect_settings.json +0 -0
  104. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglotrs/benches/long.rs +0 -0
  105. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglotrs/benches/token_type_settings.json +0 -0
  106. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglotrs/benches/tokenizer_dialect_settings.json +0 -0
  107. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglotrs/benches/tokenizer_settings.json +0 -0
  108. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglotrs/pyproject.toml +0 -0
  109. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglotrs/src/lib.rs +0 -0
  110. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglotrs/src/settings.rs +0 -0
  111. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglotrs/src/token.rs +0 -0
  112. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglotrs/src/tokenizer.rs +0 -0
  113. {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglotrs/src/trie.rs +0 -0
  114. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/__init__.py +0 -0
  115. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/__init__.py +0 -0
  116. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_athena.py +0 -0
  117. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_bigquery.py +0 -0
  118. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_clickhouse.py +0 -0
  119. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_databricks.py +0 -0
  120. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_dialect.py +0 -0
  121. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_doris.py +0 -0
  122. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_dremio.py +0 -0
  123. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_drill.py +0 -0
  124. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_druid.py +0 -0
  125. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_duckdb.py +0 -0
  126. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_dune.py +0 -0
  127. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_exasol.py +0 -0
  128. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_fabric.py +0 -0
  129. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_hive.py +0 -0
  130. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_materialize.py +0 -0
  131. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_mysql.py +0 -0
  132. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_oracle.py +0 -0
  133. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_pipe_syntax.py +0 -0
  134. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_presto.py +0 -0
  135. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_prql.py +0 -0
  136. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_redshift.py +0 -0
  137. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_risingwave.py +0 -0
  138. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_singlestore.py +0 -0
  139. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_spark.py +0 -0
  140. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_sqlite.py +0 -0
  141. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_starrocks.py +0 -0
  142. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_tableau.py +0 -0
  143. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_teradata.py +0 -0
  144. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_trino.py +0 -0
  145. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_tsql.py +0 -0
  146. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/jsonpath/LICENSE +0 -0
  147. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/jsonpath/cts.json +0 -0
  148. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/annotate_functions.sql +0 -0
  149. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/annotate_types.sql +0 -0
  150. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/canonicalize.sql +0 -0
  151. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/eliminate_ctes.sql +0 -0
  152. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/eliminate_joins.sql +0 -0
  153. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/eliminate_subqueries.sql +0 -0
  154. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/isolate_table_selects.sql +0 -0
  155. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/merge_subqueries.sql +0 -0
  156. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/normalize.sql +0 -0
  157. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/normalize_identifiers.sql +0 -0
  158. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/optimize_joins.sql +0 -0
  159. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/optimizer.sql +0 -0
  160. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/pushdown_cte_alias_columns.sql +0 -0
  161. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/pushdown_predicates.sql +0 -0
  162. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/pushdown_projections.sql +0 -0
  163. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/qualify_columns.sql +0 -0
  164. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/qualify_columns__invalid.sql +0 -0
  165. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/qualify_columns__with_invisible.sql +0 -0
  166. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/qualify_columns_ddl.sql +0 -0
  167. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/qualify_tables.sql +0 -0
  168. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/quote_identifiers.sql +0 -0
  169. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/simplify.sql +0 -0
  170. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/call_center.csv.gz +0 -0
  171. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/catalog_page.csv.gz +0 -0
  172. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/catalog_returns.csv.gz +0 -0
  173. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/catalog_sales.csv.gz +0 -0
  174. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/customer.csv.gz +0 -0
  175. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/customer_address.csv.gz +0 -0
  176. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/customer_demographics.csv.gz +0 -0
  177. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/date_dim.csv.gz +0 -0
  178. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/household_demographics.csv.gz +0 -0
  179. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/income_band.csv.gz +0 -0
  180. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/inventory.csv.gz +0 -0
  181. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/item.csv.gz +0 -0
  182. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/promotion.csv.gz +0 -0
  183. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/reason.csv.gz +0 -0
  184. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/ship_mode.csv.gz +0 -0
  185. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/store.csv.gz +0 -0
  186. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/store_returns.csv.gz +0 -0
  187. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/store_sales.csv.gz +0 -0
  188. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/time_dim.csv.gz +0 -0
  189. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/tpc-ds.sql +0 -0
  190. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/warehouse.csv.gz +0 -0
  191. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/web_page.csv.gz +0 -0
  192. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/web_returns.csv.gz +0 -0
  193. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/web_sales.csv.gz +0 -0
  194. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/web_site.csv.gz +0 -0
  195. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-h/customer.csv.gz +0 -0
  196. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-h/lineitem.csv.gz +0 -0
  197. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-h/nation.csv.gz +0 -0
  198. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-h/orders.csv.gz +0 -0
  199. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-h/part.csv.gz +0 -0
  200. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-h/partsupp.csv.gz +0 -0
  201. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-h/region.csv.gz +0 -0
  202. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-h/supplier.csv.gz +0 -0
  203. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-h/tpc-h.sql +0 -0
  204. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/unnest_subqueries.sql +0 -0
  205. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/partial.sql +0 -0
  206. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/pretty.sql +0 -0
  207. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/gen_fixtures.py +0 -0
  208. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/helpers.py +0 -0
  209. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_build.py +0 -0
  210. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_dialect_imports.py +0 -0
  211. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_diff.py +0 -0
  212. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_docs.py +0 -0
  213. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_executor.py +0 -0
  214. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_expressions.py +0 -0
  215. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_generator.py +0 -0
  216. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_helper.py +0 -0
  217. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_jsonpath.py +0 -0
  218. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_lineage.py +0 -0
  219. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_optimizer.py +0 -0
  220. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_parser.py +0 -0
  221. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_schema.py +0 -0
  222. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_serde.py +0 -0
  223. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_time.py +0 -0
  224. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_tokens.py +0 -0
  225. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_transforms.py +0 -0
  226. {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_transpile.py +0 -0
@@ -1,6 +1,66 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ ## [v27.13.1] - 2025-09-08
5
+ ### :bug: Bug Fixes
6
+ - [`f3d55c0`](https://github.com/tobymao/sqlglot/commit/f3d55c05c8411c9871f8ca4d23f726f976c9236b) - remove always token *(PR [#5832](https://github.com/tobymao/sqlglot/pull/5832) by [@tobymao](https://github.com/tobymao))*
7
+ - [`1724775`](https://github.com/tobymao/sqlglot/commit/1724775429f66c2768864c8f96ace861eaa435fd) - suppert types() with no args *(PR [#5833](https://github.com/tobymao/sqlglot/pull/5833) by [@tobymao](https://github.com/tobymao))*
8
+ - [`31c82c6`](https://github.com/tobymao/sqlglot/commit/31c82c6d6cd402e59cb59a94daafd22410eae0f6) - support `case.*` *(PR [#5835](https://github.com/tobymao/sqlglot/pull/5835) by [@georgesittas](https://github.com/georgesittas))*
9
+ - [`c00f73b`](https://github.com/tobymao/sqlglot/commit/c00f73bac2530a62c25093c60bf02d0a4231bb0b) - window spec no and only exclude *(PR [#5834](https://github.com/tobymao/sqlglot/pull/5834) by [@tobymao](https://github.com/tobymao))*
10
+
11
+
12
+ ## [v27.13.0] - 2025-09-08
13
+ ### :boom: BREAKING CHANGES
14
+ - due to [`3726b33`](https://github.com/tobymao/sqlglot/commit/3726b33bb6b4ab286617f510e96e1fbd27c429f3) - support nulls_first arg for array_sort *(PR [#5802](https://github.com/tobymao/sqlglot/pull/5802) by [@treysp](https://github.com/treysp))*:
15
+
16
+ support nulls_first arg for array_sort (#5802)
17
+
18
+ - due to [`cf1d1e3`](https://github.com/tobymao/sqlglot/commit/cf1d1e3e0ef9e6cd1b1c6128c63ddf06c30f1339) - annotate type for snowflake's REVERSE function *(PR [#5803](https://github.com/tobymao/sqlglot/pull/5803) by [@fivetran-BradfordPaskewitz](https://github.com/fivetran-BradfordPaskewitz))*:
19
+
20
+ annotate type for snowflake's REVERSE function (#5803)
21
+
22
+ - due to [`ad0b407`](https://github.com/tobymao/sqlglot/commit/ad0b407098e1611d4fc0e1f0916511337b9aefdb) - Mark 'BEGIN' as TokenType.BEGIN for transactions *(PR [#5826](https://github.com/tobymao/sqlglot/pull/5826) by [@VaggelisD](https://github.com/VaggelisD))*:
23
+
24
+ Mark 'BEGIN' as TokenType.BEGIN for transactions (#5826)
25
+
26
+ - due to [`0198282`](https://github.com/tobymao/sqlglot/commit/0198282a82bbf3e81476e164718d63fd1210acdc) - : Update tests for concat string function *(PR [#5809](https://github.com/tobymao/sqlglot/pull/5809) by [@fivetran-amrutabhimsenayachit](https://github.com/fivetran-amrutabhimsenayachit))*:
27
+
28
+ : Update tests for concat string function (#5809)
29
+
30
+ - due to [`db2c430`](https://github.com/tobymao/sqlglot/commit/db2c4303237a1244070c359245c398a724df6de2) - annoate the "contains" function *(PR [#5829](https://github.com/tobymao/sqlglot/pull/5829) by [@fivetran-amrutabhimsenayachit](https://github.com/fivetran-amrutabhimsenayachit))*:
31
+
32
+ annoate the "contains" function (#5829)
33
+
34
+
35
+ ### :sparkles: New Features
36
+ - [`cf1d1e3`](https://github.com/tobymao/sqlglot/commit/cf1d1e3e0ef9e6cd1b1c6128c63ddf06c30f1339) - **optimizer**: annotate type for snowflake's REVERSE function *(PR [#5803](https://github.com/tobymao/sqlglot/pull/5803) by [@fivetran-BradfordPaskewitz](https://github.com/fivetran-BradfordPaskewitz))*
37
+ - [`1d07c52`](https://github.com/tobymao/sqlglot/commit/1d07c52badb2e392e6895cbb275d2224789366c9) - **SingleStore**: Implemented generation of CURRENT_DATETIME *(PR [#5816](https://github.com/tobymao/sqlglot/pull/5816) by [@AdalbertMemSQL](https://github.com/AdalbertMemSQL))*
38
+ - [`cad4fd0`](https://github.com/tobymao/sqlglot/commit/cad4fd0c5b0ec90e693fa6883af0ab287b921019) - **singlestore**: Added handling of exp.JSONObject *(PR [#5817](https://github.com/tobymao/sqlglot/pull/5817) by [@AdalbertMemSQL](https://github.com/AdalbertMemSQL))*
39
+ - [`e3cb076`](https://github.com/tobymao/sqlglot/commit/e3cb0766bd5c3ccb31ea52cfc76201f548798dc1) - **singlestore**: Implemented generation of exp.StandardHash *(PR [#5823](https://github.com/tobymao/sqlglot/pull/5823) by [@AdalbertMemSQL](https://github.com/AdalbertMemSQL))*
40
+ - [`0198282`](https://github.com/tobymao/sqlglot/commit/0198282a82bbf3e81476e164718d63fd1210acdc) - **optimizer**: : Update tests for concat string function *(PR [#5809](https://github.com/tobymao/sqlglot/pull/5809) by [@fivetran-amrutabhimsenayachit](https://github.com/fivetran-amrutabhimsenayachit))*
41
+ - [`4e8a436`](https://github.com/tobymao/sqlglot/commit/4e8a436c16f487a72bd1ac2432bcb1c46599d901) - **singlestore**: Added generation of exp.JSONExists *(PR [#5820](https://github.com/tobymao/sqlglot/pull/5820) by [@AdalbertMemSQL](https://github.com/AdalbertMemSQL))*
42
+ - [`82bea49`](https://github.com/tobymao/sqlglot/commit/82bea49978ae459492b5127a2a52049826e2fd06) - **singlestore**: Refactored parsing of JSON_BUILD_OBJECT *(PR [#5828](https://github.com/tobymao/sqlglot/pull/5828) by [@AdalbertMemSQL](https://github.com/AdalbertMemSQL))*
43
+ - [`f7d38c3`](https://github.com/tobymao/sqlglot/commit/f7d38c3a10c505346f04e39a2712d60b4c96370f) - **singlestore**: Implemented generation of exp.Stuff *(PR [#5825](https://github.com/tobymao/sqlglot/pull/5825) by [@AdalbertMemSQL](https://github.com/AdalbertMemSQL))*
44
+ - [`030a5b5`](https://github.com/tobymao/sqlglot/commit/030a5b5ea03ecee869b07cfd27f4ea044732822e) - **singlestore**: Added generation of exp.JSONBExists *(PR [#5821](https://github.com/tobymao/sqlglot/pull/5821) by [@AdalbertMemSQL](https://github.com/AdalbertMemSQL))*
45
+ - [`e58fef1`](https://github.com/tobymao/sqlglot/commit/e58fef1d6dc654a3b36461bcbea21c99cdc96477) - **singlestore**: Implemented parsing and generation of exp.MatchAgainst *(PR [#5822](https://github.com/tobymao/sqlglot/pull/5822) by [@AdalbertMemSQL](https://github.com/AdalbertMemSQL))*
46
+ - [`e94f530`](https://github.com/tobymao/sqlglot/commit/e94f530af0e0cdad995b4c8dc5ed86953490d37f) - **singlestore**: Added handling of exp.JSONArray *(PR [#5818](https://github.com/tobymao/sqlglot/pull/5818) by [@AdalbertMemSQL](https://github.com/AdalbertMemSQL))*
47
+ - [`1c42ef4`](https://github.com/tobymao/sqlglot/commit/1c42ef4374aeab8a1ee9848892d7f8c4511c7f04) - **singlestore**: Fixed parsing/generation of exp.JSONArrayAgg *(PR [#5819](https://github.com/tobymao/sqlglot/pull/5819) by [@AdalbertMemSQL](https://github.com/AdalbertMemSQL))*
48
+ - [`67219f0`](https://github.com/tobymao/sqlglot/commit/67219f0606231514f430e146e2fdb99e796f718b) - **singlestore**: Added support of UTC_TIMESTAMP and CURRENT_TIMESTAMP *(PR [#5808](https://github.com/tobymao/sqlglot/pull/5808) by [@AdalbertMemSQL](https://github.com/AdalbertMemSQL))*
49
+ - [`db2c430`](https://github.com/tobymao/sqlglot/commit/db2c4303237a1244070c359245c398a724df6de2) - **optimizer**: annoate the "contains" function *(PR [#5829](https://github.com/tobymao/sqlglot/pull/5829) by [@fivetran-amrutabhimsenayachit](https://github.com/fivetran-amrutabhimsenayachit))*
50
+
51
+ ### :bug: Bug Fixes
52
+ - [`3726b33`](https://github.com/tobymao/sqlglot/commit/3726b33bb6b4ab286617f510e96e1fbd27c429f3) - **snowflake**: support nulls_first arg for array_sort *(PR [#5802](https://github.com/tobymao/sqlglot/pull/5802) by [@treysp](https://github.com/treysp))*
53
+ - [`3408de0`](https://github.com/tobymao/sqlglot/commit/3408de09e50d2510c1a6f511dc2dec357059044f) - parsing quoted built-in data types *(PR [#5810](https://github.com/tobymao/sqlglot/pull/5810) by [@treysp](https://github.com/treysp))*
54
+ - [`ad0b407`](https://github.com/tobymao/sqlglot/commit/ad0b407098e1611d4fc0e1f0916511337b9aefdb) - **postgres**: Mark 'BEGIN' as TokenType.BEGIN for transactions *(PR [#5826](https://github.com/tobymao/sqlglot/pull/5826) by [@VaggelisD](https://github.com/VaggelisD))*
55
+ - :arrow_lower_right: *fixes issue [#5815](https://github.com/tobymao/sqlglot/issues/5815) opened by [@karakanb](https://github.com/karakanb)*
56
+ - [`e1a1b5b`](https://github.com/tobymao/sqlglot/commit/e1a1b5befefb0ca30ac1310cecb82a44f6089034) - **snowflake**: transpile BigQuery's `&` to `BITAND` *(PR [#5827](https://github.com/tobymao/sqlglot/pull/5827) by [@YuvalOmerRep](https://github.com/YuvalOmerRep))*
57
+ - [`32d0278`](https://github.com/tobymao/sqlglot/commit/32d027827eaa7aa0cd9faf2ac1f84739f914050f) - parse and generation of BITWISE AGG funcs across dialects *(PR [#5831](https://github.com/tobymao/sqlglot/pull/5831) by [@geooo109](https://github.com/geooo109))*
58
+ - [`5f39a83`](https://github.com/tobymao/sqlglot/commit/5f39a83f1ff957aca57eb4745f83c296436acaac) - **bigquery**: properly generate `LIMIT` for `STRING_AGG` *(PR [#5830](https://github.com/tobymao/sqlglot/pull/5830) by [@georgesittas](https://github.com/georgesittas))*
59
+
60
+ ### :wrench: Chores
61
+ - [`164fec1`](https://github.com/tobymao/sqlglot/commit/164fec1b36e3c7df41e2e5a5ad6b226fc5f76305) - **optimizer**: test type annotation for snowflake CHARINDEX function *(PR [#5805](https://github.com/tobymao/sqlglot/pull/5805) by [@fivetran-amrutabhimsenayachit](https://github.com/fivetran-amrutabhimsenayachit))*
62
+
63
+
4
64
  ## [v27.12.0] - 2025-09-04
5
65
  ### :boom: BREAKING CHANGES
6
66
  - due to [`1c551d5`](https://github.com/tobymao/sqlglot/commit/1c551d5ed3315e314013c1f063deabd9d8613e5d) - parse and annotate type for bq TO_JSON *(PR [#5768](https://github.com/tobymao/sqlglot/pull/5768) by [@geooo109](https://github.com/geooo109))*:
@@ -7110,3 +7170,5 @@ Changelog
7110
7170
  [v27.10.0]: https://github.com/tobymao/sqlglot/compare/v27.9.0...v27.10.0
7111
7171
  [v27.11.0]: https://github.com/tobymao/sqlglot/compare/v27.10.0...v27.11.0
7112
7172
  [v27.12.0]: https://github.com/tobymao/sqlglot/compare/v27.11.0...v27.12.0
7173
+ [v27.13.0]: https://github.com/tobymao/sqlglot/compare/v27.12.0...v27.13.0
7174
+ [v27.13.1]: https://github.com/tobymao/sqlglot/compare/v27.13.0...v27.13.1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlglot
3
- Version: 27.13.0
3
+ Version: 27.13.2
4
4
  Summary: An easily customizable SQL parser and transpiler
5
5
  Author-email: Toby Mao <toby.mao@gmail.com>
6
6
  License-Expression: MIT
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '27.13.0'
32
- __version_tuple__ = version_tuple = (27, 13, 0)
31
+ __version__ = version = '27.13.2'
32
+ __version_tuple__ = version_tuple = (27, 13, 2)
33
33
 
34
- __commit_id__ = commit_id = 'g5f39a83f1'
34
+ __commit_id__ = commit_id = 'g5e7979f3c'
@@ -1161,7 +1161,6 @@ class Snowflake(Dialect):
1161
1161
  "RM": TokenType.COMMAND,
1162
1162
  "SAMPLE": TokenType.TABLE_SAMPLE,
1163
1163
  "SEMANTIC VIEW": TokenType.SEMANTIC_VIEW,
1164
- "SESSION": TokenType.SESSION,
1165
1164
  "SQL_DOUBLE": TokenType.DOUBLE,
1166
1165
  "SQL_VARCHAR": TokenType.VARCHAR,
1167
1166
  "STAGE": TokenType.STAGE,
@@ -5243,7 +5243,8 @@ class Generator(metaclass=_Generator):
5243
5243
  metrics = self.seg(f"METRICS {metrics}") if metrics else ""
5244
5244
  where = self.sql(expression, "where")
5245
5245
  where = self.seg(f"WHERE {where}") if where else ""
5246
- return f"SEMANTIC_VIEW({self.indent(this + metrics + dimensions + where)}{self.seg(')', sep='')}"
5246
+ body = self.indent(this + metrics + dimensions + where, skip_first=True)
5247
+ return f"SEMANTIC_VIEW({body}{self.seg(')', sep='')}"
5247
5248
 
5248
5249
  def getextract_sql(self, expression: exp.GetExtract) -> str:
5249
5250
  this = expression.this
@@ -569,6 +569,7 @@ class Parser(metaclass=_Parser):
569
569
  TokenType.USE,
570
570
  TokenType.VOLATILE,
571
571
  TokenType.WINDOW,
572
+ *ALTERABLES,
572
573
  *CREATABLES,
573
574
  *SUBQUERY_PREDICATES,
574
575
  *TYPE_TOKENS,
@@ -5397,7 +5398,7 @@ class Parser(metaclass=_Parser):
5397
5398
  if type_token == TokenType.VECTOR and len(expressions) == 2:
5398
5399
  expressions[0] = exp.DataType.build(expressions[0].name, dialect=self.dialect)
5399
5400
 
5400
- if not expressions or not self._match(TokenType.R_PAREN):
5401
+ if not self._match(TokenType.R_PAREN):
5401
5402
  self._retreat(index)
5402
5403
  return None
5403
5404
 
@@ -6464,6 +6465,11 @@ class Parser(metaclass=_Parser):
6464
6465
  return this
6465
6466
 
6466
6467
  def _parse_case(self) -> t.Optional[exp.Expression]:
6468
+ if self._match(TokenType.DOT, advance=False):
6469
+ # Avoid raising on valid expressions like case.*, supported by, e.g., spark & snowflake
6470
+ self._retreat(self._index - 1)
6471
+ return None
6472
+
6467
6473
  ifs = []
6468
6474
  default = None
6469
6475
 
@@ -7079,8 +7085,8 @@ class Parser(metaclass=_Parser):
7079
7085
  if kind:
7080
7086
  self._match(TokenType.BETWEEN)
7081
7087
  start = self._parse_window_spec()
7082
- self._match(TokenType.AND)
7083
- end = self._parse_window_spec()
7088
+
7089
+ end = self._parse_window_spec() if self._match(TokenType.AND) else {}
7084
7090
  exclude = (
7085
7091
  self._parse_var_from_options(self.WINDOW_EXCLUDE_OPTIONS)
7086
7092
  if self._match_text_seq("EXCLUDE")
@@ -7092,8 +7098,8 @@ class Parser(metaclass=_Parser):
7092
7098
  kind=kind,
7093
7099
  start=start["value"],
7094
7100
  start_side=start["side"],
7095
- end=end["value"],
7096
- end_side=end["side"],
7101
+ end=end.get("value"),
7102
+ end_side=end.get("side"),
7097
7103
  exclude=exclude,
7098
7104
  )
7099
7105
  else:
@@ -7131,7 +7137,7 @@ class Parser(metaclass=_Parser):
7131
7137
  "value": (
7132
7138
  (self._match_text_seq("UNBOUNDED") and "UNBOUNDED")
7133
7139
  or (self._match_text_seq("CURRENT", "ROW") and "CURRENT ROW")
7134
- or self._parse_bitwise()
7140
+ or self._parse_type()
7135
7141
  ),
7136
7142
  "side": self._match_texts(self.WINDOW_SIDES) and self._prev.text,
7137
7143
  }
@@ -234,7 +234,6 @@ class TokenType(AutoName):
234
234
  # keywords
235
235
  ALIAS = auto()
236
236
  ALTER = auto()
237
- ALWAYS = auto()
238
237
  ALL = auto()
239
238
  ANTI = auto()
240
239
  ANY = auto()
@@ -713,7 +712,6 @@ class Tokenizer(metaclass=_Tokenizer):
713
712
  "~~*": TokenType.ILIKE,
714
713
  "~*": TokenType.IRLIKE,
715
714
  "ALL": TokenType.ALL,
716
- "ALWAYS": TokenType.ALWAYS,
717
715
  "AND": TokenType.AND,
718
716
  "ANTI": TokenType.ANTI,
719
717
  "ANY": TokenType.ANY,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlglot
3
- Version: 27.13.0
3
+ Version: 27.13.2
4
4
  Summary: An easily customizable SQL parser and transpiler
5
5
  Author-email: Toby Mao <toby.mao@gmail.com>
6
6
  License-Expression: MIT
@@ -8,6 +8,10 @@ class TestPostgres(Validator):
8
8
  dialect = "postgres"
9
9
 
10
10
  def test_postgres(self):
11
+ self.validate_identity(
12
+ "select count() OVER(partition by a order by a range offset preceding exclude current row)",
13
+ "SELECT COUNT() OVER (PARTITION BY a ORDER BY a range BETWEEN offset preceding AND CURRENT ROW EXCLUDE CURRENT ROW)",
14
+ )
11
15
  expr = self.parse_one("SELECT * FROM r CROSS JOIN LATERAL UNNEST(ARRAY[1]) AS s(location)")
12
16
  unnest = expr.args["joins"][0].this.this
13
17
  unnest.assert_is(exp.Unnest)
@@ -11,6 +11,9 @@ class TestSnowflake(Validator):
11
11
  dialect = "snowflake"
12
12
 
13
13
  def test_snowflake(self):
14
+ self.validate_identity("SELECT session")
15
+ self.validate_identity("x::nvarchar()", "CAST(x AS VARCHAR)")
16
+
14
17
  ast = self.parse_one("DATEADD(DAY, n, d)")
15
18
  ast.set("unit", exp.Literal.string("MONTH"))
16
19
  self.assertEqual(ast.sql("snowflake"), "DATEADD(MONTH, n, d)")
@@ -3030,7 +3033,7 @@ SINGLE = TRUE""",
3030
3033
  "SELECT * FROM SEMANTIC_VIEW(foo METRICS a.b, a.c DIMENSIONS a.b, a.c WHERE a.b > '1995-01-01')",
3031
3034
  """SELECT
3032
3035
  *
3033
- FROM SEMANTIC_VIEW(
3036
+ FROM SEMANTIC_VIEW(
3034
3037
  foo
3035
3038
  METRICS a.b, a.c
3036
3039
  DIMENSIONS a.b, a.c
@@ -284,6 +284,7 @@ SELECT * FROM test FETCH FIRST ROWS ONLY
284
284
  SELECT * FROM test FETCH FIRST 1 ROWS ONLY
285
285
  SELECT * FROM test ORDER BY id DESC FETCH FIRST 10 ROWS WITH TIES
286
286
  SELECT * FROM test ORDER BY id DESC FETCH FIRST 10 PERCENT ROWS WITH TIES
287
+ SELECT * FROM test ORDER BY always DESC
287
288
  SELECT * FROM test FETCH NEXT 1 ROWS ONLY
288
289
  SELECT (1 > 2) AS x FROM test
289
290
  SELECT NOT (1 > 2) FROM test
@@ -929,3 +930,4 @@ SELECT SINH(x)
929
930
  SELECT COSINE_DISTANCE(v1, v2)
930
931
  SELECT EUCLIDEAN_DISTANCE(v1, v2)
931
932
  FOO(values.c)
933
+ case.*
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