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.
- {sqlglot-27.13.0 → sqlglot-27.13.2}/CHANGELOG.md +62 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/PKG-INFO +1 -1
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/_version.py +3 -3
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/snowflake.py +0 -1
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/generator.py +2 -1
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/parser.py +12 -6
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/tokens.py +0 -2
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot.egg-info/PKG-INFO +1 -1
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_postgres.py +4 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_snowflake.py +4 -1
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/identity.sql +2 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/.gitignore +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/.gitpod.yml +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/.pre-commit-config.yaml +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/CONTRIBUTING.md +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/LICENSE +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/MANIFEST.in +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/Makefile +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/README.md +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/pyproject.toml +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/setup.cfg +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/setup.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/__init__.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/__main__.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/_typing.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/__init__.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/athena.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/bigquery.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/clickhouse.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/databricks.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/dialect.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/doris.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/dremio.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/drill.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/druid.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/duckdb.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/dune.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/exasol.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/fabric.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/hive.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/materialize.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/mysql.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/oracle.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/postgres.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/presto.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/prql.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/redshift.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/risingwave.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/singlestore.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/spark.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/spark2.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/sqlite.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/starrocks.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/tableau.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/teradata.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/trino.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/dialects/tsql.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/diff.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/errors.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/executor/__init__.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/executor/context.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/executor/env.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/executor/python.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/executor/table.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/expressions.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/helper.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/jsonpath.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/lineage.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/__init__.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/annotate_types.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/canonicalize.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/eliminate_ctes.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/eliminate_joins.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/eliminate_subqueries.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/isolate_table_selects.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/merge_subqueries.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/normalize.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/normalize_identifiers.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/optimize_joins.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/optimizer.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/pushdown_predicates.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/pushdown_projections.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/qualify.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/qualify_columns.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/qualify_tables.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/scope.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/simplify.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/optimizer/unnest_subqueries.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/planner.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/py.typed +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/schema.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/serde.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/time.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/transforms.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot/trie.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot.egg-info/SOURCES.txt +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot.egg-info/dependency_links.txt +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot.egg-info/requires.txt +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot.egg-info/top_level.txt +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglot.png +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglotrs/Cargo.lock +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglotrs/Cargo.toml +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglotrs/benches/dialect_settings.json +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglotrs/benches/long.rs +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglotrs/benches/token_type_settings.json +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglotrs/benches/tokenizer_dialect_settings.json +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglotrs/benches/tokenizer_settings.json +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglotrs/pyproject.toml +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglotrs/src/lib.rs +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglotrs/src/settings.rs +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglotrs/src/token.rs +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglotrs/src/tokenizer.rs +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/sqlglotrs/src/trie.rs +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/__init__.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/__init__.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_athena.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_bigquery.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_clickhouse.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_databricks.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_dialect.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_doris.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_dremio.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_drill.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_druid.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_duckdb.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_dune.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_exasol.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_fabric.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_hive.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_materialize.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_mysql.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_oracle.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_pipe_syntax.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_presto.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_prql.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_redshift.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_risingwave.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_singlestore.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_spark.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_sqlite.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_starrocks.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_tableau.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_teradata.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_trino.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/dialects/test_tsql.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/jsonpath/LICENSE +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/jsonpath/cts.json +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/annotate_functions.sql +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/annotate_types.sql +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/canonicalize.sql +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/eliminate_ctes.sql +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/eliminate_joins.sql +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/eliminate_subqueries.sql +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/isolate_table_selects.sql +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/merge_subqueries.sql +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/normalize.sql +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/normalize_identifiers.sql +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/optimize_joins.sql +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/optimizer.sql +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/pushdown_cte_alias_columns.sql +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/pushdown_predicates.sql +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/pushdown_projections.sql +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/qualify_columns.sql +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/qualify_columns__invalid.sql +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/qualify_columns__with_invisible.sql +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/qualify_columns_ddl.sql +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/qualify_tables.sql +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/quote_identifiers.sql +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/simplify.sql +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/call_center.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/catalog_page.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/catalog_returns.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/catalog_sales.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/customer.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/customer_address.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/customer_demographics.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/date_dim.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/household_demographics.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/income_band.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/inventory.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/item.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/promotion.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/reason.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/ship_mode.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/store.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/store_returns.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/store_sales.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/time_dim.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/tpc-ds.sql +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/warehouse.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/web_page.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/web_returns.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/web_sales.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/web_site.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-h/customer.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-h/lineitem.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-h/nation.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-h/orders.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-h/part.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-h/partsupp.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-h/region.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-h/supplier.csv.gz +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-h/tpc-h.sql +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/unnest_subqueries.sql +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/partial.sql +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/pretty.sql +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/gen_fixtures.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/helpers.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_build.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_dialect_imports.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_diff.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_docs.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_executor.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_expressions.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_generator.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_helper.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_jsonpath.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_lineage.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_optimizer.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_parser.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_schema.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_serde.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_time.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_tokens.py +0 -0
- {sqlglot-27.13.0 → sqlglot-27.13.2}/tests/test_transforms.py +0 -0
- {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
|
|
@@ -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.
|
|
32
|
-
__version_tuple__ = version_tuple = (27, 13,
|
|
31
|
+
__version__ = version = '27.13.2'
|
|
32
|
+
__version_tuple__ = version_tuple = (27, 13, 2)
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
7096
|
-
end_side=end
|
|
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.
|
|
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,
|
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
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
|
{sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/qualify_columns__with_invisible.sql
RENAMED
|
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
|
{sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/customer_demographics.csv.gz
RENAMED
|
File without changes
|
|
File without changes
|
{sqlglot-27.13.0 → sqlglot-27.13.2}/tests/fixtures/optimizer/tpc-ds/household_demographics.csv.gz
RENAMED
|
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
|
|
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
|