sqlglot 30.4.0__tar.gz → 30.4.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-30.4.0 → sqlglot-30.4.3}/CHANGELOG.md +18 -0
- {sqlglot-30.4.0/sqlglot.egg-info → sqlglot-30.4.3}/PKG-INFO +3 -3
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/_version.py +3 -3
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/snowflake.py +1 -1
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/snowflake.py +15 -9
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/schema.py +2 -8
- {sqlglot-30.4.0 → sqlglot-30.4.3/sqlglot.egg-info}/PKG-INFO +3 -3
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot.egg-info/requires.txt +2 -2
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_snowflake.py +10 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/.gitignore +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/.gitmodules +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/.gitpod.yml +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/.pre-commit-config.yaml +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/AGENTS.md +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/CLAUDE.md +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/CONTRIBUTING.md +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/LICENSE +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/MANIFEST.in +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/Makefile +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/README.md +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/pyproject.toml +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/setup.cfg +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/setup.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/__init__.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/__main__.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/_typing.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/__init__.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/athena.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/bigquery.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/clickhouse.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/databricks.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/dialect.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/doris.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/dremio.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/drill.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/druid.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/duckdb.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/dune.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/exasol.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/fabric.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/hive.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/materialize.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/mysql.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/oracle.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/postgres.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/presto.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/prql.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/redshift.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/risingwave.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/singlestore.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/snowflake.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/solr.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/spark.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/spark2.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/sqlite.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/starrocks.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/tableau.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/teradata.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/trino.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/dialects/tsql.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/diff.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/errors.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/executor/__init__.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/executor/context.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/executor/env.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/executor/python.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/executor/table.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/expressions/__init__.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/expressions/aggregate.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/expressions/array.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/expressions/builders.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/expressions/constraints.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/expressions/core.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/expressions/datatypes.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/expressions/ddl.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/expressions/dml.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/expressions/functions.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/expressions/json.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/expressions/math.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/expressions/properties.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/expressions/query.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/expressions/string.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/expressions/temporal.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generator.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/__init__.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/athena.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/bigquery.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/clickhouse.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/databricks.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/doris.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/dremio.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/drill.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/druid.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/duckdb.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/dune.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/exasol.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/fabric.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/hive.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/materialize.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/mysql.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/oracle.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/postgres.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/presto.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/prql.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/redshift.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/risingwave.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/singlestore.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/solr.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/spark.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/spark2.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/sqlite.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/starrocks.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/tableau.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/teradata.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/trino.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/generators/tsql.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/helper.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/jsonpath.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/lineage.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/optimizer/__init__.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/optimizer/annotate_types.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/optimizer/canonicalize.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/optimizer/eliminate_ctes.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/optimizer/eliminate_joins.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/optimizer/eliminate_subqueries.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/optimizer/isolate_table_selects.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/optimizer/merge_subqueries.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/optimizer/normalize.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/optimizer/normalize_identifiers.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/optimizer/optimize_joins.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/optimizer/optimizer.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/optimizer/pushdown_predicates.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/optimizer/pushdown_projections.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/optimizer/qualify.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/optimizer/qualify_columns.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/optimizer/qualify_tables.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/optimizer/resolver.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/optimizer/scope.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/optimizer/simplify.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/optimizer/unnest_subqueries.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parser.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/__init__.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/athena.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/base.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/bigquery.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/clickhouse.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/databricks.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/doris.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/dremio.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/drill.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/druid.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/duckdb.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/dune.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/exasol.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/fabric.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/hive.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/materialize.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/mysql.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/oracle.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/postgres.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/presto.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/prql.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/redshift.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/risingwave.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/singlestore.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/solr.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/spark.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/spark2.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/sqlite.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/starrocks.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/tableau.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/teradata.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/trino.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/parsers/tsql.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/planner.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/py.typed +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/serde.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/time.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/tokenizer_core.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/tokens.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/transforms.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/trie.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/typing/__init__.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/typing/bigquery.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/typing/clickhouse.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/typing/duckdb.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/typing/hive.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/typing/mysql.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/typing/presto.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/typing/redshift.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/typing/snowflake.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/typing/spark.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/typing/spark2.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot/typing/tsql.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot.egg-info/SOURCES.txt +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot.egg-info/dependency_links.txt +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot.egg-info/top_level.txt +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglot.png +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglotc/MANIFEST.in +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglotc/pyproject.toml +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/sqlglotc/setup.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/__init__.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/__init__.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_athena.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_bigquery.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_clickhouse.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_databricks.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_dialect.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_doris.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_dremio.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_drill.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_druid.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_duckdb.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_dune.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_exasol.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_fabric.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_hive.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_materialize.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_mysql.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_oracle.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_pipe_syntax.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_postgres.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_presto.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_prql.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_redshift.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_risingwave.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_singlestore.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_solr.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_spark.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_sqlite.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_starrocks.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_tableau.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_teradata.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_trino.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/dialects/test_tsql.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/identity.sql +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/jsonpath/LICENSE +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/jsonpath/cts.json +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/annotate_functions.sql +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/annotate_types.sql +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/canonicalize.sql +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/eliminate_ctes.sql +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/eliminate_joins.sql +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/eliminate_subqueries.sql +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/isolate_table_selects.sql +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/merge_subqueries.sql +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/normalize.sql +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/normalize_identifiers.sql +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/optimize_joins.sql +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/optimizer.sql +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/pushdown_cte_alias_columns.sql +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/pushdown_predicates.sql +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/pushdown_projections.sql +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/qualify_columns.sql +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/qualify_columns__invalid.sql +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/qualify_columns__with_invisible.sql +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/qualify_columns_ddl.sql +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/qualify_tables.sql +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/quote_identifiers.sql +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/simplify.sql +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-ds/call_center.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-ds/catalog_page.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-ds/catalog_returns.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-ds/catalog_sales.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-ds/customer.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-ds/customer_address.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-ds/customer_demographics.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-ds/date_dim.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-ds/household_demographics.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-ds/income_band.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-ds/inventory.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-ds/item.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-ds/promotion.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-ds/reason.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-ds/ship_mode.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-ds/store.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-ds/store_returns.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-ds/store_sales.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-ds/time_dim.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-ds/tpc-ds.sql +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-ds/warehouse.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-ds/web_page.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-ds/web_returns.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-ds/web_sales.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-ds/web_site.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-h/customer.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-h/lineitem.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-h/nation.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-h/orders.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-h/part.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-h/partsupp.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-h/region.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-h/supplier.csv.gz +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/tpc-h/tpc-h.sql +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/optimizer/unnest_subqueries.sql +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/partial.sql +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/fixtures/pretty.sql +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/gen_fixtures.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/helpers.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/sqlglot/__init__.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/test_build.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/test_dialect_entry_points.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/test_dialect_imports.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/test_diff.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/test_docs.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/test_errors.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/test_executor.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/test_expressions.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/test_generator.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/test_helper.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/test_integration_loader.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/test_jsonpath.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/test_lineage.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/test_optimizer.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/test_parser.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/test_schema.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/test_serde.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/test_time.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/test_tokens.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/test_transforms.py +0 -0
- {sqlglot-30.4.0 → sqlglot-30.4.3}/tests/test_transpile.py +0 -0
|
@@ -1,6 +1,22 @@
|
|
|
1
1
|
Changelog
|
|
2
2
|
=========
|
|
3
3
|
|
|
4
|
+
## [v30.4.2] - 2026-04-08
|
|
5
|
+
### :bug: Bug Fixes
|
|
6
|
+
- [`d04595e`](https://github.com/tobymao/sqlglot/commit/d04595e1ba91a778e4b76f3f84dcb41649594e32) - incomplete `ColumnMapping` type hint *(commit by [@georgesittas](https://github.com/georgesittas))*
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## [v30.4.0] - 2026-04-08
|
|
10
|
+
### :sparkles: New Features
|
|
11
|
+
- [`24ff8bb`](https://github.com/tobymao/sqlglot/commit/24ff8bb6c1d94a03f6611d4353e210108c25a6a6) - **duckdb**: Add transpilation support for COLLATE function *(PR [#7461](https://github.com/tobymao/sqlglot/pull/7461) by [@fivetran-amrutabhimsenayachit](https://github.com/fivetran-amrutabhimsenayachit))*
|
|
12
|
+
- [`6717634`](https://github.com/tobymao/sqlglot/commit/67176343b150dd0121c7537e1b828bfde5a7a176) - **snowflake**: transpilation support for CONCAT_WS NULL semantics when transpiling to DuckDB *(PR [#7464](https://github.com/tobymao/sqlglot/pull/7464) by [@fivetran-ashashankar](https://github.com/fivetran-ashashankar))*
|
|
13
|
+
- [`00970d8`](https://github.com/tobymao/sqlglot/commit/00970d85aaac2ca40c967c6fd4ad03dbc5f0367d) - **duckdb**: Add transpilation support for RTRIMMED_LENGTH function *(PR [#7468](https://github.com/tobymao/sqlglot/pull/7468) by [@fivetran-amrutabhimsenayachit](https://github.com/fivetran-amrutabhimsenayachit))*
|
|
14
|
+
|
|
15
|
+
### :bug: Bug Fixes
|
|
16
|
+
- [`d3c2eeb`](https://github.com/tobymao/sqlglot/commit/d3c2eeb724c548913352369743ddefb78494417f) - **tsql**: improve `SELECT TOP` parsing *(commit by [@georgesittas](https://github.com/georgesittas))*
|
|
17
|
+
- [`800c0c4`](https://github.com/tobymao/sqlglot/commit/800c0c44bb3a2f209be9118ba71b993a99d63e3a) - **snowflake**: emit proper `HANDLER` property syntax *(commit by [@georgesittas](https://github.com/georgesittas))*
|
|
18
|
+
|
|
19
|
+
|
|
4
20
|
## [v30.3.0] - 2026-04-07
|
|
5
21
|
### :boom: BREAKING CHANGES
|
|
6
22
|
- due to [`d044414`](https://github.com/tobymao/sqlglot/commit/d0444141c2d5888bddfb8301d5c643f87ab1a054) - support transpilation of function LEFT from Snowflake … *(PR [#7419](https://github.com/tobymao/sqlglot/pull/7419) by [@fivetran-ashashankar](https://github.com/fivetran-ashashankar))*:
|
|
@@ -14125,3 +14141,5 @@ pip install "sqlglot[c]" # compiled — faster, but no subclassing
|
|
|
14125
14141
|
[v30.2.0]: https://github.com/tobymao/sqlglot/compare/v30.1.0...v30.2.0
|
|
14126
14142
|
[v30.2.1]: https://github.com/tobymao/sqlglot/compare/v30.2.0...v30.2.1
|
|
14127
14143
|
[v30.3.0]: https://github.com/tobymao/sqlglot/compare/v30.2.1...v30.3.0
|
|
14144
|
+
[v30.4.0]: https://github.com/tobymao/sqlglot/compare/v30.3.0...v30.4.0
|
|
14145
|
+
[v30.4.2]: https://github.com/tobymao/sqlglot/compare/v30.4.1...v30.4.2
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sqlglot
|
|
3
|
-
Version: 30.4.
|
|
3
|
+
Version: 30.4.3
|
|
4
4
|
Summary: An easily customizable SQL parser and transpiler
|
|
5
5
|
Author-email: Toby Mao <toby.mao@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -33,10 +33,10 @@ Requires-Dist: types-pytz; extra == "dev"
|
|
|
33
33
|
Requires-Dist: typing_extensions; extra == "dev"
|
|
34
34
|
Requires-Dist: pyperf; extra == "dev"
|
|
35
35
|
Provides-Extra: c
|
|
36
|
-
Requires-Dist: sqlglotc==30.4.
|
|
36
|
+
Requires-Dist: sqlglotc==30.4.3; extra == "c"
|
|
37
37
|
Provides-Extra: rs
|
|
38
38
|
Requires-Dist: sqlglotrs==0.13.0; extra == "rs"
|
|
39
|
-
Requires-Dist: sqlglotc==30.4.
|
|
39
|
+
Requires-Dist: sqlglotc==30.4.3; extra == "rs"
|
|
40
40
|
Dynamic: license-file
|
|
41
41
|
Dynamic: provides-extra
|
|
42
42
|
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '30.4.
|
|
22
|
-
__version_tuple__ = version_tuple = (30, 4,
|
|
21
|
+
__version__ = version = '30.4.3'
|
|
22
|
+
__version_tuple__ = version_tuple = (30, 4, 3)
|
|
23
23
|
|
|
24
|
-
__commit_id__ = commit_id = '
|
|
24
|
+
__commit_id__ = commit_id = 'g713e95fb9'
|
|
@@ -863,7 +863,7 @@ class SnowflakeGenerator(generator.Generator):
|
|
|
863
863
|
def rowaccessproperty_sql(self, expression: exp.RowAccessProperty) -> str:
|
|
864
864
|
if not expression.this:
|
|
865
865
|
return "ROW ACCESS"
|
|
866
|
-
on = f" ON ({self.expressions(expression, flat=True)})"
|
|
866
|
+
on = f" ON ({self.expressions(expression, flat=True)})" if expression.expressions else ""
|
|
867
867
|
return f"WITH ROW ACCESS POLICY {self.sql(expression, 'this')}{on}"
|
|
868
868
|
|
|
869
869
|
def describe_sql(self, expression: exp.Describe) -> str:
|
|
@@ -978,15 +978,21 @@ class SnowflakeParser(parser.Parser):
|
|
|
978
978
|
return super()._parse_with_property()
|
|
979
979
|
|
|
980
980
|
def _parse_row_access_policy(self) -> exp.RowAccessProperty:
|
|
981
|
-
policy
|
|
982
|
-
if
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
)
|
|
989
|
-
|
|
981
|
+
# GET_DDL outputs #unknown_policy when the user lacks privileges to see the policy name
|
|
982
|
+
if self._match(TokenType.HASH):
|
|
983
|
+
policy: exp.Expr | None = self._parse_var(any_token=True)
|
|
984
|
+
if policy:
|
|
985
|
+
policy = exp.Var(this=f"#{policy.name}")
|
|
986
|
+
expressions = None
|
|
987
|
+
else:
|
|
988
|
+
policy = self._parse_column()
|
|
989
|
+
if isinstance(policy, exp.Column):
|
|
990
|
+
policy = policy.to_dot()
|
|
991
|
+
if not self._match(TokenType.ON):
|
|
992
|
+
self.raise_error("Expected ON after ROW ACCESS POLICY name")
|
|
993
|
+
expressions = self._parse_wrapped_csv(self._parse_id_var)
|
|
994
|
+
|
|
995
|
+
return self.expression(exp.RowAccessProperty(this=policy, expressions=expressions))
|
|
990
996
|
|
|
991
997
|
def _parse_create(self) -> exp.Create | exp.Command:
|
|
992
998
|
expression = super()._parse_create()
|
|
@@ -18,7 +18,7 @@ if t.TYPE_CHECKING:
|
|
|
18
18
|
from collections.abc import Sequence
|
|
19
19
|
from typing_extensions import Unpack
|
|
20
20
|
|
|
21
|
-
ColumnMapping = t.Union[dict
|
|
21
|
+
ColumnMapping = t.Union[dict, str, list]
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
@trait
|
|
@@ -708,13 +708,7 @@ def ensure_schema(
|
|
|
708
708
|
return MappingSchema(schema, **kwargs)
|
|
709
709
|
|
|
710
710
|
|
|
711
|
-
|
|
712
|
-
def ensure_column_mapping(mapping: list[str] | None) -> dict[str, None]: ...
|
|
713
|
-
@t.overload
|
|
714
|
-
def ensure_column_mapping(mapping: dict[str, str]) -> dict[str, str]: ...
|
|
715
|
-
@t.overload
|
|
716
|
-
def ensure_column_mapping(mapping: ColumnMapping | None) -> dict[str, None] | dict[str, str]: ...
|
|
717
|
-
def ensure_column_mapping(mapping: ColumnMapping | None) -> dict[str, None] | dict[str, str]:
|
|
711
|
+
def ensure_column_mapping(mapping: ColumnMapping | None) -> dict:
|
|
718
712
|
if mapping is None:
|
|
719
713
|
return {}
|
|
720
714
|
elif isinstance(mapping, dict):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sqlglot
|
|
3
|
-
Version: 30.4.
|
|
3
|
+
Version: 30.4.3
|
|
4
4
|
Summary: An easily customizable SQL parser and transpiler
|
|
5
5
|
Author-email: Toby Mao <toby.mao@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -33,10 +33,10 @@ Requires-Dist: types-pytz; extra == "dev"
|
|
|
33
33
|
Requires-Dist: typing_extensions; extra == "dev"
|
|
34
34
|
Requires-Dist: pyperf; extra == "dev"
|
|
35
35
|
Provides-Extra: c
|
|
36
|
-
Requires-Dist: sqlglotc==30.4.
|
|
36
|
+
Requires-Dist: sqlglotc==30.4.3; extra == "c"
|
|
37
37
|
Provides-Extra: rs
|
|
38
38
|
Requires-Dist: sqlglotrs==0.13.0; extra == "rs"
|
|
39
|
-
Requires-Dist: sqlglotc==30.4.
|
|
39
|
+
Requires-Dist: sqlglotc==30.4.3; extra == "rs"
|
|
40
40
|
Dynamic: license-file
|
|
41
41
|
Dynamic: provides-extra
|
|
42
42
|
|
|
@@ -5973,6 +5973,16 @@ SINGLE = TRUE""",
|
|
|
5973
5973
|
"CREATE VIEW v WITH ROW ACCESS POLICY p AS SELECT 1",
|
|
5974
5974
|
dialect="snowflake",
|
|
5975
5975
|
)
|
|
5976
|
+
self.validate_identity(
|
|
5977
|
+
"CREATE VIEW v WITH ROW ACCESS POLICY #unknown_policy AS SELECT 1",
|
|
5978
|
+
)
|
|
5979
|
+
self.assertEqual(
|
|
5980
|
+
parse_one(
|
|
5981
|
+
"CREATE VIEW v WITH ROW ACCESS POLICY #unknown_policy AS SELECT 1",
|
|
5982
|
+
dialect="snowflake",
|
|
5983
|
+
).sql(dialect="snowflake", identify=True),
|
|
5984
|
+
'CREATE VIEW "v" WITH ROW ACCESS POLICY #unknown_policy AS SELECT 1',
|
|
5985
|
+
)
|
|
5976
5986
|
|
|
5977
5987
|
def test_semantic_view(self):
|
|
5978
5988
|
for dimensions, metrics, where, facts in [
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|