polyglot-sql 0.3.5__tar.gz → 0.3.7__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.
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/Cargo.lock +5 -5
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/Cargo.toml +1 -1
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/PKG-INFO +1 -1
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/Cargo.toml +1 -1
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/builder.rs +4 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/bigquery.rs +2 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/clickhouse.rs +10 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/databricks.rs +33 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/duckdb.rs +25 -4
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/mod.rs +266 -100
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/mysql.rs +1 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/redshift.rs +1 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/snowflake.rs +13 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/spark.rs +53 -5
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/tsql.rs +6 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/expressions.rs +22 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/generator.rs +486 -139
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/optimizer/canonicalize.rs +4 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/optimizer/isolate_table_selects.rs +2 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/optimizer/pushdown_projections.rs +4 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/optimizer/qualify_columns.rs +10 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/optimizer/subquery.rs +6 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/parser.rs +985 -171
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/tokens.rs +39 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/transforms.rs +66 -0
- polyglot_sql-0.3.7/crates/polyglot-sql/tests/clickhouse_regression.rs +159 -0
- polyglot_sql-0.3.7/crates/polyglot-sql/tests/custom_clickhouse_coverage.rs +168 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/deep_nesting_regression.rs +2 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/fabric_regression.rs +43 -0
- polyglot_sql-0.3.5/crates/polyglot-sql/tests/clickhouse_regression.rs +0 -29
- polyglot_sql-0.3.5/crates/polyglot-sql/tests/custom_clickhouse_coverage.rs +0 -95
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/README.md +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/README.md +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/benches/in_list.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/benches/parsing.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/benches/rust_parsing.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/benches/transpile.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/examples/basic_usage.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/examples/bench_json.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/ast_transforms.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/athena.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/cockroachdb.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/datafusion.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/doris.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/dremio.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/drill.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/druid.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/dune.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/exasol.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/fabric.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/generic.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/hive.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/materialize.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/oracle.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/postgres.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/presto.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/risingwave.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/singlestore.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/solr.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/sqlite.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/starrocks.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/tableau.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/teradata.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/tidb.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/dialects/trino.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/diff.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/error.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/function_catalog.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/function_registry.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/helper.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/lib.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/lineage.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/optimizer/annotate_types.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/optimizer/eliminate_ctes.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/optimizer/eliminate_joins.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/optimizer/mod.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/optimizer/normalize.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/optimizer/normalize_identifiers.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/optimizer/optimize_joins.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/optimizer/optimizer.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/optimizer/pushdown_predicates.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/optimizer/qualify_tables.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/optimizer/simplify.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/planner.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/resolver.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/schema.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/scope.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/time.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/traversal.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/trie.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/validation/tests.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/src/validation.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/analyze_failures.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/common/known_failures.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/common/mod.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/common/test_data.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/common/test_runner.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/custom_clickhouse_parser.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/custom_dialect.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/custom_dialect_tests.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/custom_fixtures/datafusion/ddl.json +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/custom_fixtures/datafusion/dml.json +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/custom_fixtures/datafusion/functions.json +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/custom_fixtures/datafusion/identity.json +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/custom_fixtures/datafusion/operators.json +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/custom_fixtures/datafusion/select.json +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/custom_fixtures/datafusion/transpilation.json +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/custom_fixtures/datafusion/types.json +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/dialect_matrix.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/error_handling.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/identity_roundtrip.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/postgres_sqlite_regression.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/snowflake_regression_test.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/sqlglot_compat.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/sqlglot_dialect_identity.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/sqlglot_identity.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/sqlglot_identity_detailed.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/sqlglot_parser.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/sqlglot_pretty.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/sqlglot_transpilation.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/sqlglot_transpile.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/tpch_transpile_stack.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/transform_regression.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql/tests/tsql_regression.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-function-catalogs/Cargo.toml +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-function-catalogs/README.md +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-function-catalogs/src/clickhouse.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-function-catalogs/src/duckdb.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-function-catalogs/src/lib.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-function-catalogs/tools/clickhouse/extract_functions.py +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-function-catalogs/tools/duckdb/extract_functions.py +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/Cargo.toml +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/README.md +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/docs/api.md +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/docs/index.md +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/mkdocs.yml +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/src/annotate_types.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/src/dialects.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/src/diff.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/src/errors.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/src/expr.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/src/expr_types.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/src/format.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/src/generate.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/src/helpers.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/src/lib.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/src/lineage.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/src/optimize.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/src/parse.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/src/tokenize.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/src/transpile.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/src/types.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/src/validate.rs +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/tests/conftest.py +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/tests/test_compat.py +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/tests/test_dialects.py +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/tests/test_diff.py +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/tests/test_expression.py +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/tests/test_format.py +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/tests/test_generate.py +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/tests/test_lineage.py +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/tests/test_optimize.py +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/tests/test_parse.py +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/tests/test_transpile.py +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/tests/test_validate.py +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/crates/polyglot-sql-python/uv.lock +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/pyproject.toml +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/python/polyglot_sql/__init__.py +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/python/polyglot_sql/__init__.pyi +0 -0
- {polyglot_sql-0.3.5 → polyglot_sql-0.3.7}/python/polyglot_sql/py.typed +0 -0
|
@@ -605,7 +605,7 @@ dependencies = [
|
|
|
605
605
|
|
|
606
606
|
[[package]]
|
|
607
607
|
name = "polyglot-sql"
|
|
608
|
-
version = "0.3.
|
|
608
|
+
version = "0.3.7"
|
|
609
609
|
dependencies = [
|
|
610
610
|
"criterion",
|
|
611
611
|
"once_cell",
|
|
@@ -621,7 +621,7 @@ dependencies = [
|
|
|
621
621
|
|
|
622
622
|
[[package]]
|
|
623
623
|
name = "polyglot-sql-ffi"
|
|
624
|
-
version = "0.3.
|
|
624
|
+
version = "0.3.7"
|
|
625
625
|
dependencies = [
|
|
626
626
|
"cbindgen",
|
|
627
627
|
"polyglot-sql",
|
|
@@ -631,11 +631,11 @@ dependencies = [
|
|
|
631
631
|
|
|
632
632
|
[[package]]
|
|
633
633
|
name = "polyglot-sql-function-catalogs"
|
|
634
|
-
version = "0.3.
|
|
634
|
+
version = "0.3.7"
|
|
635
635
|
|
|
636
636
|
[[package]]
|
|
637
637
|
name = "polyglot-sql-python"
|
|
638
|
-
version = "0.3.
|
|
638
|
+
version = "0.3.7"
|
|
639
639
|
dependencies = [
|
|
640
640
|
"polyglot-sql",
|
|
641
641
|
"pyo3",
|
|
@@ -646,7 +646,7 @@ dependencies = [
|
|
|
646
646
|
|
|
647
647
|
[[package]]
|
|
648
648
|
name = "polyglot-sql-wasm"
|
|
649
|
-
version = "0.3.
|
|
649
|
+
version = "0.3.7"
|
|
650
650
|
dependencies = [
|
|
651
651
|
"console_error_panic_hook",
|
|
652
652
|
"js-sys",
|
|
@@ -83,7 +83,7 @@ thiserror = { workspace = true }
|
|
|
83
83
|
unicode-segmentation = { workspace = true }
|
|
84
84
|
stacker = { version = "0.1", optional = true }
|
|
85
85
|
ts-rs = { version = "12.0", features = ["serde-compat"], optional = true }
|
|
86
|
-
polyglot-sql-function-catalogs = { path = "../polyglot-sql-function-catalogs", version = "0.3.
|
|
86
|
+
polyglot-sql-function-catalogs = { path = "../polyglot-sql-function-catalogs", version = "0.3.7", optional = true, default-features = false }
|
|
87
87
|
|
|
88
88
|
[dev-dependencies]
|
|
89
89
|
pretty_assertions = "1.4"
|
|
@@ -294,6 +294,8 @@ pub fn alias(expr: Expr, name: &str) -> Expr {
|
|
|
294
294
|
this: expr.0,
|
|
295
295
|
alias: builder_identifier(name),
|
|
296
296
|
column_aliases: Vec::new(),
|
|
297
|
+
alias_explicit_as: false,
|
|
298
|
+
alias_keyword: None,
|
|
297
299
|
pre_alias_comments: Vec::new(),
|
|
298
300
|
trailing_comments: Vec::new(),
|
|
299
301
|
inferred_type: None,
|
|
@@ -1955,6 +1957,8 @@ pub fn subquery_expr(expr: Expression, alias_name: &str) -> Expr {
|
|
|
1955
1957
|
this: expr,
|
|
1956
1958
|
alias: Some(builder_identifier(alias_name)),
|
|
1957
1959
|
column_aliases: Vec::new(),
|
|
1960
|
+
alias_explicit_as: false,
|
|
1961
|
+
alias_keyword: None,
|
|
1958
1962
|
order_by: None,
|
|
1959
1963
|
limit: None,
|
|
1960
1964
|
offset: None,
|
|
@@ -683,6 +683,8 @@ impl DialectImpl for BigQueryDialect {
|
|
|
683
683
|
this: unnest,
|
|
684
684
|
alias: Identifier::new("_col"),
|
|
685
685
|
column_aliases: Vec::new(),
|
|
686
|
+
alias_explicit_as: false,
|
|
687
|
+
alias_keyword: None,
|
|
686
688
|
pre_alias_comments: Vec::new(),
|
|
687
689
|
trailing_comments: Vec::new(),
|
|
688
690
|
inferred_type: None,
|
|
@@ -42,6 +42,10 @@ impl DialectImpl for ClickHouseDialect {
|
|
|
42
42
|
config.hex_string_is_integer_type = true;
|
|
43
43
|
// ClickHouse allows underscores as digit separators in numeric literals
|
|
44
44
|
config.numbers_can_be_underscore_separated = true;
|
|
45
|
+
// SQLGlot tokenizes malformed SHOW LIKE probes such as `'a\' or 1=1`.
|
|
46
|
+
config.recover_terminal_backslash_quote = true;
|
|
47
|
+
// The ClickHouse corpus includes partial string probes extracted from shell tests.
|
|
48
|
+
config.recover_unterminated_string = true;
|
|
45
49
|
config
|
|
46
50
|
}
|
|
47
51
|
|
|
@@ -249,6 +253,12 @@ impl DialectImpl for ClickHouseDialect {
|
|
|
249
253
|
// IF(cond, true, false) -> CASE WHEN cond THEN true ELSE false END
|
|
250
254
|
Expression::IfFunc(f) => {
|
|
251
255
|
let f = *f;
|
|
256
|
+
let has_aliased_arg = matches!(f.condition, Expression::Alias(_))
|
|
257
|
+
|| matches!(f.true_value, Expression::Alias(_))
|
|
258
|
+
|| matches!(f.false_value.as_ref(), Some(Expression::Alias(_)));
|
|
259
|
+
if has_aliased_arg {
|
|
260
|
+
return Ok(Expression::IfFunc(Box::new(f)));
|
|
261
|
+
}
|
|
252
262
|
Ok(Expression::Case(Box::new(Case {
|
|
253
263
|
operand: None,
|
|
254
264
|
whens: vec![(f.condition, f.true_value)],
|
|
@@ -213,6 +213,39 @@ impl DatabricksDialect {
|
|
|
213
213
|
f.args,
|
|
214
214
|
)))),
|
|
215
215
|
|
|
216
|
+
// NAMED_STRUCT('a', 1) -> STRUCT(1 AS a) for SQLGlot Databricks outputs
|
|
217
|
+
"NAMED_STRUCT" if f.args.len() % 2 == 0 => {
|
|
218
|
+
let original_args = f.args.clone();
|
|
219
|
+
let mut struct_args = Vec::new();
|
|
220
|
+
for pair in f.args.chunks(2) {
|
|
221
|
+
if let Expression::Literal(lit) = &pair[0] {
|
|
222
|
+
if let Literal::String(field_name) = lit.as_ref() {
|
|
223
|
+
struct_args.push(Expression::Alias(Box::new(
|
|
224
|
+
crate::expressions::Alias {
|
|
225
|
+
this: pair[1].clone(),
|
|
226
|
+
alias: crate::expressions::Identifier::new(field_name),
|
|
227
|
+
column_aliases: Vec::new(),
|
|
228
|
+
alias_explicit_as: false,
|
|
229
|
+
alias_keyword: None,
|
|
230
|
+
pre_alias_comments: Vec::new(),
|
|
231
|
+
trailing_comments: Vec::new(),
|
|
232
|
+
inferred_type: None,
|
|
233
|
+
},
|
|
234
|
+
)));
|
|
235
|
+
continue;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
return Ok(Expression::Function(Box::new(Function::new(
|
|
239
|
+
"NAMED_STRUCT".to_string(),
|
|
240
|
+
original_args,
|
|
241
|
+
))));
|
|
242
|
+
}
|
|
243
|
+
Ok(Expression::Function(Box::new(Function::new(
|
|
244
|
+
"STRUCT".to_string(),
|
|
245
|
+
struct_args,
|
|
246
|
+
))))
|
|
247
|
+
}
|
|
248
|
+
|
|
216
249
|
// GETDATE -> CURRENT_TIMESTAMP
|
|
217
250
|
"GETDATE" => Ok(Expression::CurrentTimestamp(
|
|
218
251
|
crate::expressions::CurrentTimestamp {
|
|
@@ -1212,6 +1212,8 @@ impl DialectImpl for DuckDBDialect {
|
|
|
1212
1212
|
this: value,
|
|
1213
1213
|
alias,
|
|
1214
1214
|
column_aliases: Vec::new(),
|
|
1215
|
+
alias_explicit_as: false,
|
|
1216
|
+
alias_keyword: None,
|
|
1215
1217
|
pre_alias_comments: Vec::new(),
|
|
1216
1218
|
trailing_comments: Vec::new(),
|
|
1217
1219
|
inferred_type: None,
|
|
@@ -1418,6 +1420,8 @@ impl DuckDBDialect {
|
|
|
1418
1420
|
this: stmt,
|
|
1419
1421
|
alias: None,
|
|
1420
1422
|
column_aliases: Vec::new(),
|
|
1423
|
+
alias_explicit_as: false,
|
|
1424
|
+
alias_keyword: None,
|
|
1421
1425
|
order_by: None,
|
|
1422
1426
|
limit: None,
|
|
1423
1427
|
offset: None,
|
|
@@ -3466,10 +3470,27 @@ impl DuckDBDialect {
|
|
|
3466
3470
|
vec![arg, Expression::number(2)],
|
|
3467
3471
|
))))
|
|
3468
3472
|
}
|
|
3469
|
-
"
|
|
3470
|
-
|
|
3471
|
-
|
|
3472
|
-
|
|
3473
|
+
"LIST"
|
|
3474
|
+
if f.args.len() == 1 && !matches!(f.args.first(), Some(Expression::Select(_))) =>
|
|
3475
|
+
{
|
|
3476
|
+
Ok(Expression::Function(Box::new(Function::new(
|
|
3477
|
+
"ARRAY_AGG".to_string(),
|
|
3478
|
+
f.args,
|
|
3479
|
+
))))
|
|
3480
|
+
}
|
|
3481
|
+
"UUID_STRING" => {
|
|
3482
|
+
if f.args.is_empty() {
|
|
3483
|
+
Ok(Expression::Function(Box::new(Function::new(
|
|
3484
|
+
"UUID".to_string(),
|
|
3485
|
+
vec![],
|
|
3486
|
+
))))
|
|
3487
|
+
} else {
|
|
3488
|
+
Ok(Expression::Function(Box::new(Function::new(
|
|
3489
|
+
"UUID_STRING".to_string(),
|
|
3490
|
+
f.args,
|
|
3491
|
+
))))
|
|
3492
|
+
}
|
|
3493
|
+
}
|
|
3473
3494
|
"ENDSWITH" => Ok(Expression::Function(Box::new(Function::new(
|
|
3474
3495
|
"ENDS_WITH".to_string(),
|
|
3475
3496
|
f.args,
|