sqlglot 27.15.3__tar.gz → 27.16.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {sqlglot-27.15.3 → sqlglot-27.16.0}/CHANGELOG.md +6 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/PKG-INFO +1 -1
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/_version.py +3 -3
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/snowflake.py +1 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/expressions.py +8 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot.egg-info/PKG-INFO +1 -1
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_oracle.py +14 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_snowflake.py +4 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/annotate_functions.sql +20 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/.gitignore +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/.gitpod.yml +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/.pre-commit-config.yaml +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/CONTRIBUTING.md +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/LICENSE +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/MANIFEST.in +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/Makefile +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/README.md +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/pyproject.toml +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/setup.cfg +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/setup.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/__init__.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/__main__.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/_typing.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/__init__.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/athena.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/bigquery.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/clickhouse.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/databricks.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/dialect.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/doris.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/dremio.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/drill.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/druid.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/duckdb.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/dune.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/exasol.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/fabric.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/hive.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/materialize.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/mysql.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/oracle.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/postgres.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/presto.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/prql.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/redshift.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/risingwave.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/singlestore.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/spark.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/spark2.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/sqlite.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/starrocks.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/tableau.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/teradata.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/trino.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/dialects/tsql.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/diff.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/errors.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/executor/__init__.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/executor/context.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/executor/env.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/executor/python.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/executor/table.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/generator.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/helper.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/jsonpath.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/lineage.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/optimizer/__init__.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/optimizer/annotate_types.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/optimizer/canonicalize.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/optimizer/eliminate_ctes.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/optimizer/eliminate_joins.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/optimizer/eliminate_subqueries.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/optimizer/isolate_table_selects.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/optimizer/merge_subqueries.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/optimizer/normalize.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/optimizer/normalize_identifiers.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/optimizer/optimize_joins.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/optimizer/optimizer.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/optimizer/pushdown_predicates.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/optimizer/pushdown_projections.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/optimizer/qualify.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/optimizer/qualify_columns.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/optimizer/qualify_tables.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/optimizer/scope.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/optimizer/simplify.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/optimizer/unnest_subqueries.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/parser.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/planner.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/py.typed +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/schema.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/serde.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/time.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/tokens.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/transforms.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot/trie.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot.egg-info/SOURCES.txt +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot.egg-info/dependency_links.txt +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot.egg-info/requires.txt +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot.egg-info/top_level.txt +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglot.png +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglotrs/Cargo.lock +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglotrs/Cargo.toml +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglotrs/benches/dialect_settings.json +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglotrs/benches/long.rs +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglotrs/benches/token_type_settings.json +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglotrs/benches/tokenizer_dialect_settings.json +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglotrs/benches/tokenizer_settings.json +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglotrs/pyproject.toml +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglotrs/src/lib.rs +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglotrs/src/settings.rs +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglotrs/src/token.rs +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglotrs/src/tokenizer.rs +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/sqlglotrs/src/trie.rs +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/__init__.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/__init__.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_athena.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_bigquery.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_clickhouse.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_databricks.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_dialect.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_doris.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_dremio.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_drill.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_druid.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_duckdb.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_dune.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_exasol.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_fabric.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_hive.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_materialize.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_mysql.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_pipe_syntax.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_postgres.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_presto.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_prql.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_redshift.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_risingwave.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_singlestore.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_spark.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_sqlite.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_starrocks.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_tableau.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_teradata.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_trino.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/dialects/test_tsql.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/identity.sql +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/jsonpath/LICENSE +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/jsonpath/cts.json +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/annotate_types.sql +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/canonicalize.sql +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/eliminate_ctes.sql +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/eliminate_joins.sql +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/eliminate_subqueries.sql +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/isolate_table_selects.sql +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/merge_subqueries.sql +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/normalize.sql +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/normalize_identifiers.sql +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/optimize_joins.sql +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/optimizer.sql +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/pushdown_cte_alias_columns.sql +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/pushdown_predicates.sql +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/pushdown_projections.sql +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/qualify_columns.sql +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/qualify_columns__invalid.sql +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/qualify_columns__with_invisible.sql +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/qualify_columns_ddl.sql +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/qualify_tables.sql +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/quote_identifiers.sql +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/simplify.sql +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-ds/call_center.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-ds/catalog_page.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-ds/catalog_returns.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-ds/catalog_sales.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-ds/customer.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-ds/customer_address.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-ds/customer_demographics.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-ds/date_dim.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-ds/household_demographics.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-ds/income_band.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-ds/inventory.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-ds/item.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-ds/promotion.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-ds/reason.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-ds/ship_mode.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-ds/store.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-ds/store_returns.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-ds/store_sales.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-ds/time_dim.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-ds/tpc-ds.sql +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-ds/warehouse.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-ds/web_page.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-ds/web_returns.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-ds/web_sales.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-ds/web_site.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-h/customer.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-h/lineitem.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-h/nation.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-h/orders.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-h/part.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-h/partsupp.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-h/region.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-h/supplier.csv.gz +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-h/tpc-h.sql +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/unnest_subqueries.sql +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/partial.sql +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/fixtures/pretty.sql +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/gen_fixtures.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/helpers.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/test_build.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/test_dialect_imports.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/test_diff.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/test_docs.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/test_executor.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/test_expressions.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/test_generator.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/test_helper.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/test_jsonpath.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/test_lineage.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/test_optimizer.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/test_parser.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/test_schema.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/test_serde.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/test_time.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/test_tokens.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/test_transforms.py +0 -0
- {sqlglot-27.15.3 → sqlglot-27.16.0}/tests/test_transpile.py +0 -0
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
Changelog
|
|
2
2
|
=========
|
|
3
3
|
|
|
4
|
+
## [v27.15.3] - 2025-09-17
|
|
5
|
+
### :bug: Bug Fixes
|
|
6
|
+
- [`bd3e965`](https://github.com/tobymao/sqlglot/commit/bd3e9655aa72ffef8a9e0221205fa2c3915ef58b) - allow `lock` to be used as an identifier *(commit by [@georgesittas](https://github.com/georgesittas))*
|
|
7
|
+
|
|
8
|
+
|
|
4
9
|
## [v27.15.2] - 2025-09-17
|
|
5
10
|
### :sparkles: New Features
|
|
6
11
|
- [`d5cf114`](https://github.com/tobymao/sqlglot/commit/d5cf1149932850a91cb5f1ebecda2652616729ef) - **duckdb**: support INSTALL *(PR [#5904](https://github.com/tobymao/sqlglot/pull/5904) by [@geooo109](https://github.com/geooo109))*
|
|
@@ -7346,3 +7351,4 @@ Changelog
|
|
|
7346
7351
|
[v27.15.0]: https://github.com/tobymao/sqlglot/compare/v27.14.0...v27.15.0
|
|
7347
7352
|
[v27.15.1]: https://github.com/tobymao/sqlglot/compare/v27.15.0...v27.15.1
|
|
7348
7353
|
[v27.15.2]: https://github.com/tobymao/sqlglot/compare/v27.15.1...v27.15.2
|
|
7354
|
+
[v27.15.3]: https://github.com/tobymao/sqlglot/compare/v27.15.2...v27.15.3
|
|
@@ -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.
|
|
32
|
-
__version_tuple__ = version_tuple = (27,
|
|
31
|
+
__version__ = version = '27.16.0'
|
|
32
|
+
__version_tuple__ = version_tuple = (27, 16, 0)
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'g2d0d908b5'
|
|
@@ -5780,6 +5780,11 @@ class AISummarizeAgg(AggFunc):
|
|
|
5780
5780
|
_sql_names = ["AI_SUMMARIZE_AGG"]
|
|
5781
5781
|
|
|
5782
5782
|
|
|
5783
|
+
class AIClassify(Func):
|
|
5784
|
+
arg_types = {"this": True, "categories": True, "config": False}
|
|
5785
|
+
_sql_names = ["AI_CLASSIFY"]
|
|
5786
|
+
|
|
5787
|
+
|
|
5783
5788
|
class ArrayAll(Func):
|
|
5784
5789
|
arg_types = {"this": True, "expression": True}
|
|
5785
5790
|
|
|
@@ -8312,6 +8317,9 @@ def merge(
|
|
|
8312
8317
|
if returning:
|
|
8313
8318
|
merge = merge.returning(returning, dialect=dialect, copy=False, **opts)
|
|
8314
8319
|
|
|
8320
|
+
if isinstance(using_clause := merge.args.get("using"), Alias):
|
|
8321
|
+
using_clause.replace(alias_(using_clause.this, using_clause.args["alias"], table=True))
|
|
8322
|
+
|
|
8315
8323
|
return merge
|
|
8316
8324
|
|
|
8317
8325
|
|
|
@@ -777,3 +777,17 @@ CONNECT BY PRIOR employee_id = manager_id AND LEVEL <= 4"""
|
|
|
777
777
|
self.validate_identity("UTC_TIME(6)").assert_is(exp.UtcTime)
|
|
778
778
|
self.validate_identity("UTC_TIMESTAMP()").assert_is(exp.UtcTimestamp)
|
|
779
779
|
self.validate_identity("UTC_TIMESTAMP(6)").assert_is(exp.UtcTimestamp)
|
|
780
|
+
|
|
781
|
+
def test_merge_builder_alias(self):
|
|
782
|
+
merge_stmt = exp.merge(
|
|
783
|
+
"WHEN MATCHED THEN UPDATE SET my_table.col1 = source_table.col1",
|
|
784
|
+
"WHEN NOT MATCHED THEN INSERT (my_table.id, my_table.col1) VALUES (source_table.id, source_table.col1)",
|
|
785
|
+
into="my_table",
|
|
786
|
+
using="(SELECT * FROM something) source_table",
|
|
787
|
+
on="my_table.id = source_table.id",
|
|
788
|
+
dialect="oracle",
|
|
789
|
+
)
|
|
790
|
+
self.assertEqual(
|
|
791
|
+
merge_stmt.sql("oracle"),
|
|
792
|
+
"MERGE INTO my_table USING (SELECT * FROM something) source_table ON my_table.id = source_table.id WHEN MATCHED THEN UPDATE SET my_table.col1 = source_table.col1 WHEN NOT MATCHED THEN INSERT (my_table.id, my_table.col1) VALUES (source_table.id, source_table.col1)",
|
|
793
|
+
)
|
|
@@ -68,6 +68,10 @@ class TestSnowflake(Validator):
|
|
|
68
68
|
self.validate_identity("SELECT ARRAY_UNIQUE_AGG(x)")
|
|
69
69
|
self.validate_identity("SELECT AI_AGG(review, 'Summarize the reviews')")
|
|
70
70
|
self.validate_identity("SELECT AI_SUMMARIZE_AGG(review)")
|
|
71
|
+
self.validate_identity("SELECT AI_CLASSIFY('text', ['travel', 'cooking'])")
|
|
72
|
+
self.validate_identity(
|
|
73
|
+
"SELECT AI_CLASSIFY('text', ['travel', 'cooking'], OBJECT_CONSTRUCT('output_mode', 'multi'))"
|
|
74
|
+
)
|
|
71
75
|
self.validate_identity("SELECT OBJECT_CONSTRUCT()")
|
|
72
76
|
self.validate_identity("SELECT DAYOFMONTH(CURRENT_TIMESTAMP())")
|
|
73
77
|
self.validate_identity("SELECT DAYOFYEAR(CURRENT_TIMESTAMP())")
|
|
@@ -1551,6 +1551,14 @@ VARCHAR;
|
|
|
1551
1551
|
AI_SUMMARIZE_AGG(null);
|
|
1552
1552
|
VARCHAR;
|
|
1553
1553
|
|
|
1554
|
+
# dialect: snowflake
|
|
1555
|
+
AI_CLASSIFY('text', ['travel', 'cooking']);
|
|
1556
|
+
VARCHAR;
|
|
1557
|
+
|
|
1558
|
+
# dialect: snowflake
|
|
1559
|
+
AI_CLASSIFY('text', ['travel', 'cooking'], {'output_mode': 'multi'});
|
|
1560
|
+
VARCHAR;
|
|
1561
|
+
|
|
1554
1562
|
# dialect: snowflake
|
|
1555
1563
|
CHARINDEX('world', 'hello world');
|
|
1556
1564
|
INT;
|
|
@@ -1999,6 +2007,18 @@ BOOLEAN;
|
|
|
1999
2007
|
tbl.str_col NOT LIKE '%e%';
|
|
2000
2008
|
BOOLEAN;
|
|
2001
2009
|
|
|
2010
|
+
# dialect: snowflake
|
|
2011
|
+
tbl.str_col LIKE ALL ('H%', '%o');
|
|
2012
|
+
BOOLEAN;
|
|
2013
|
+
|
|
2014
|
+
# dialect: snowflake
|
|
2015
|
+
tbl.str_col LIKE ANY ('H%', '%o');
|
|
2016
|
+
BOOLEAN;
|
|
2017
|
+
|
|
2018
|
+
# dialect: snowflake
|
|
2019
|
+
tbl.str_col ILIKE ANY ('h%', '%x');
|
|
2020
|
+
BOOLEAN;
|
|
2021
|
+
|
|
2002
2022
|
--------------------------------------
|
|
2003
2023
|
-- T-SQL
|
|
2004
2024
|
--------------------------------------
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.15.3 → sqlglot-27.16.0}/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.15.3 → sqlglot-27.16.0}/tests/fixtures/optimizer/tpc-ds/customer_demographics.csv.gz
RENAMED
|
File without changes
|
|
File without changes
|
{sqlglot-27.15.3 → sqlglot-27.16.0}/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
|