sqlglot 27.16.2__tar.gz → 27.16.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {sqlglot-27.16.2 → sqlglot-27.16.3}/CHANGELOG.md +6 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/PKG-INFO +1 -1
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/_version.py +3 -3
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/postgres.py +10 -6
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/parser.py +1 -1
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot.egg-info/PKG-INFO +1 -1
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_postgres.py +4 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/.gitignore +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/.gitpod.yml +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/.pre-commit-config.yaml +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/CONTRIBUTING.md +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/LICENSE +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/MANIFEST.in +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/Makefile +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/README.md +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/pyproject.toml +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/setup.cfg +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/setup.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/__init__.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/__main__.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/_typing.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/__init__.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/athena.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/bigquery.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/clickhouse.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/databricks.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/dialect.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/doris.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/dremio.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/drill.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/druid.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/duckdb.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/dune.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/exasol.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/fabric.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/hive.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/materialize.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/mysql.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/oracle.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/presto.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/prql.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/redshift.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/risingwave.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/singlestore.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/snowflake.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/spark.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/spark2.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/sqlite.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/starrocks.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/tableau.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/teradata.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/trino.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/dialects/tsql.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/diff.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/errors.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/executor/__init__.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/executor/context.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/executor/env.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/executor/python.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/executor/table.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/expressions.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/generator.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/helper.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/jsonpath.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/lineage.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/optimizer/__init__.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/optimizer/annotate_types.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/optimizer/canonicalize.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/optimizer/eliminate_ctes.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/optimizer/eliminate_joins.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/optimizer/eliminate_subqueries.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/optimizer/isolate_table_selects.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/optimizer/merge_subqueries.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/optimizer/normalize.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/optimizer/normalize_identifiers.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/optimizer/optimize_joins.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/optimizer/optimizer.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/optimizer/pushdown_predicates.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/optimizer/pushdown_projections.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/optimizer/qualify.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/optimizer/qualify_columns.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/optimizer/qualify_tables.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/optimizer/scope.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/optimizer/simplify.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/optimizer/unnest_subqueries.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/planner.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/py.typed +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/schema.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/serde.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/time.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/tokens.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/transforms.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot/trie.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot.egg-info/SOURCES.txt +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot.egg-info/dependency_links.txt +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot.egg-info/requires.txt +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot.egg-info/top_level.txt +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglot.png +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglotrs/Cargo.lock +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglotrs/Cargo.toml +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglotrs/benches/dialect_settings.json +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglotrs/benches/long.rs +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglotrs/benches/token_type_settings.json +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglotrs/benches/tokenizer_dialect_settings.json +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglotrs/benches/tokenizer_settings.json +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglotrs/pyproject.toml +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglotrs/src/lib.rs +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglotrs/src/settings.rs +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglotrs/src/token.rs +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglotrs/src/tokenizer.rs +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/sqlglotrs/src/trie.rs +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/__init__.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/__init__.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_athena.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_bigquery.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_clickhouse.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_databricks.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_dialect.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_doris.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_dremio.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_drill.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_druid.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_duckdb.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_dune.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_exasol.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_fabric.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_hive.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_materialize.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_mysql.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_oracle.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_pipe_syntax.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_presto.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_prql.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_redshift.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_risingwave.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_singlestore.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_snowflake.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_spark.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_sqlite.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_starrocks.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_tableau.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_teradata.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_trino.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/dialects/test_tsql.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/identity.sql +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/jsonpath/LICENSE +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/jsonpath/cts.json +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/annotate_functions.sql +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/annotate_types.sql +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/canonicalize.sql +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/eliminate_ctes.sql +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/eliminate_joins.sql +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/eliminate_subqueries.sql +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/isolate_table_selects.sql +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/merge_subqueries.sql +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/normalize.sql +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/normalize_identifiers.sql +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/optimize_joins.sql +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/optimizer.sql +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/pushdown_cte_alias_columns.sql +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/pushdown_predicates.sql +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/pushdown_projections.sql +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/qualify_columns.sql +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/qualify_columns__invalid.sql +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/qualify_columns__with_invisible.sql +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/qualify_columns_ddl.sql +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/qualify_tables.sql +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/quote_identifiers.sql +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/simplify.sql +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-ds/call_center.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-ds/catalog_page.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-ds/catalog_returns.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-ds/catalog_sales.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-ds/customer.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-ds/customer_address.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-ds/customer_demographics.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-ds/date_dim.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-ds/household_demographics.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-ds/income_band.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-ds/inventory.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-ds/item.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-ds/promotion.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-ds/reason.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-ds/ship_mode.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-ds/store.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-ds/store_returns.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-ds/store_sales.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-ds/time_dim.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-ds/tpc-ds.sql +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-ds/warehouse.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-ds/web_page.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-ds/web_returns.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-ds/web_sales.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-ds/web_site.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-h/customer.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-h/lineitem.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-h/nation.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-h/orders.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-h/part.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-h/partsupp.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-h/region.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-h/supplier.csv.gz +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-h/tpc-h.sql +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/unnest_subqueries.sql +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/partial.sql +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/fixtures/pretty.sql +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/gen_fixtures.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/helpers.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/test_build.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/test_dialect_imports.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/test_diff.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/test_docs.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/test_executor.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/test_expressions.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/test_generator.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/test_helper.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/test_jsonpath.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/test_lineage.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/test_optimizer.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/test_parser.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/test_schema.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/test_serde.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/test_time.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/test_tokens.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/test_transforms.py +0 -0
- {sqlglot-27.16.2 → sqlglot-27.16.3}/tests/test_transpile.py +0 -0
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
Changelog
|
|
2
2
|
=========
|
|
3
3
|
|
|
4
|
+
## [v27.16.2] - 2025-09-18
|
|
5
|
+
### :wrench: Chores
|
|
6
|
+
- [`837890c`](https://github.com/tobymao/sqlglot/commit/837890c7e8bcc3695541bbe32fd8088eee70fea3) - handle badly formed binary expressions gracefully in type inference *(commit by [@georgesittas](https://github.com/georgesittas))*
|
|
7
|
+
|
|
8
|
+
|
|
4
9
|
## [v27.16.1] - 2025-09-18
|
|
5
10
|
### :bug: Bug Fixes
|
|
6
11
|
- [`0e256b3`](https://github.com/tobymao/sqlglot/commit/0e256b3f864bc2d026817bd08e89ee89f44ad256) - edge case with parsing `interval` as identifier *(commit by [@georgesittas](https://github.com/georgesittas))*
|
|
@@ -7381,3 +7386,4 @@ Changelog
|
|
|
7381
7386
|
[v27.15.3]: https://github.com/tobymao/sqlglot/compare/v27.15.2...v27.15.3
|
|
7382
7387
|
[v27.16.0]: https://github.com/tobymao/sqlglot/compare/v27.15.3...v27.16.0
|
|
7383
7388
|
[v27.16.1]: https://github.com/tobymao/sqlglot/compare/v27.16.0...v27.16.1
|
|
7389
|
+
[v27.16.2]: https://github.com/tobymao/sqlglot/compare/v27.16.1...v27.16.2
|
|
@@ -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.16.
|
|
32
|
-
__version_tuple__ = version_tuple = (27, 16,
|
|
31
|
+
__version__ = version = '27.16.3'
|
|
32
|
+
__version_tuple__ = version_tuple = (27, 16, 3)
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'gd1270517c'
|
|
@@ -459,12 +459,16 @@ class Postgres(Dialect):
|
|
|
459
459
|
|
|
460
460
|
COLUMN_OPERATORS = {
|
|
461
461
|
**parser.Parser.COLUMN_OPERATORS,
|
|
462
|
-
TokenType.ARROW: lambda self, this, path:
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
462
|
+
TokenType.ARROW: lambda self, this, path: self.validate_expression(
|
|
463
|
+
build_json_extract_path(
|
|
464
|
+
exp.JSONExtract, arrow_req_json_type=self.JSON_ARROWS_REQUIRE_JSON_TYPE
|
|
465
|
+
)([this, path])
|
|
466
|
+
),
|
|
467
|
+
TokenType.DARROW: lambda self, this, path: self.validate_expression(
|
|
468
|
+
build_json_extract_path(
|
|
469
|
+
exp.JSONExtractScalar, arrow_req_json_type=self.JSON_ARROWS_REQUIRE_JSON_TYPE
|
|
470
|
+
)([this, path])
|
|
471
|
+
),
|
|
468
472
|
}
|
|
469
473
|
|
|
470
474
|
def _parse_query_parameter(self) -> t.Optional[exp.Expression]:
|
|
@@ -5691,7 +5691,7 @@ class Parser(metaclass=_Parser):
|
|
|
5691
5691
|
if not field:
|
|
5692
5692
|
self.raise_error("Expected type")
|
|
5693
5693
|
elif op and self._curr:
|
|
5694
|
-
field = self._parse_column_reference() or self.
|
|
5694
|
+
field = self._parse_column_reference() or self._parse_bitwise()
|
|
5695
5695
|
if isinstance(field, exp.Column) and self._match(TokenType.DOT, advance=False):
|
|
5696
5696
|
field = self._parse_column_ops(field)
|
|
5697
5697
|
else:
|
|
@@ -161,6 +161,10 @@ class TestPostgres(Validator):
|
|
|
161
161
|
"pg_catalog.PG_TABLE_IS_VISIBLE(c.oid) "
|
|
162
162
|
"ORDER BY 2, 3"
|
|
163
163
|
)
|
|
164
|
+
self.validate_identity(
|
|
165
|
+
"x::JSON -> 'duration' ->> -1",
|
|
166
|
+
"JSON_EXTRACT_PATH_TEXT(CAST(x AS JSON) -> 'duration', -1)",
|
|
167
|
+
).assert_is(exp.JSONExtractScalar).this.assert_is(exp.JSONExtract)
|
|
164
168
|
self.validate_identity(
|
|
165
169
|
"SELECT SUBSTRING('Thomas' FOR 3 FROM 2)",
|
|
166
170
|
"SELECT SUBSTRING('Thomas' FROM 2 FOR 3)",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.16.2 → sqlglot-27.16.3}/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.16.2 → sqlglot-27.16.3}/tests/fixtures/optimizer/tpc-ds/customer_demographics.csv.gz
RENAMED
|
File without changes
|
|
File without changes
|
{sqlglot-27.16.2 → sqlglot-27.16.3}/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
|