polyglot-sql 0.6.0__tar.gz → 0.6.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/Cargo.lock +6 -6
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/Cargo.toml +1 -1
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/PKG-INFO +1 -1
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/Cargo.toml +6 -2
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/README.md +1 -1
- polyglot_sql-0.6.2/crates/polyglot-sql/benches/lineage.rs +129 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/builder.rs +1 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/mod.rs +1030 -45
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/normalization/json.rs +197 -10
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/normalization/mod.rs +85 -4
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/normalization/operators.rs +39 -1
- polyglot_sql-0.6.2/crates/polyglot-sql/src/dialects/normalization/postgres_interval.rs +833 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/normalization/scalar.rs +40 -1
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/normalization/statements.rs +20 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/normalization/temporal.rs +515 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/normalization/types.rs +97 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/snowflake.rs +8 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/tsql.rs +159 -4
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/expressions.rs +132 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/generator.rs +325 -12
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/lineage.rs +318 -107
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/parser.rs +678 -7
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/tokens.rs +133 -126
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/transforms.rs +126 -2
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/common/test_runner.rs +4 -4
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/custom_fixtures/datafusion/transpilation.json +2 -2
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/dialect_matrix.rs +694 -3
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/fabric_regression.rs +397 -32
- polyglot_sql-0.6.2/crates/polyglot-sql/tests/postgres_explain_options.rs +106 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/snowflake_regression_test.rs +82 -1
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/sqlglot_compat.rs +146 -1
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/transform_regression.rs +136 -1
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/tsql_regression.rs +455 -30
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-ast-derive/Cargo.toml +3 -1
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/expr_types.rs +2 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/tests/test_parse.py +23 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/python/polyglot_sql/__init__.py +4 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/python/polyglot_sql/__init__.pyi +2 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/README.md +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/benches/allocation_hotspots.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/benches/ast_traversal.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/benches/in_list.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/benches/parsing.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/benches/performance_hotspots.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/benches/rust_parsing.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/benches/transpile.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/examples/basic_usage.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/examples/bench_json.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/ast_children.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/ast_json.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/ast_transforms.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/athena.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/bigquery.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/clickhouse.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/cockroachdb.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/databricks.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/datafusion.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/doris.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/dremio.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/drill.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/druid.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/duckdb.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/dune.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/exasol.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/fabric.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/generic.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/hive.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/materialize.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/mysql.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/normalization/aggregates.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/normalization/collections.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/oracle.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/postgres.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/presto.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/redshift.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/risingwave.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/singlestore.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/solr.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/spark.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/sqlite.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/starrocks.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/tableau.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/teradata.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/tidb.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/trino.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/diff.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/error.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/format_tokens.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/function_catalog.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/function_registry.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/guard.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/helper.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/lib.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/openlineage.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/annotate_types.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/canonicalize.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/eliminate_ctes.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/eliminate_joins.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/isolate_table_selects.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/mod.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/normalize.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/normalize_identifiers.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/optimize_joins.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/optimizer.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/pushdown_predicates.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/pushdown_projections.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/qualify_columns.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/qualify_tables.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/simplify.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/subquery.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/planner.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/query_analysis.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/resolver.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/schema.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/scope.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/time.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/traversal.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/trie.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/validation/tests.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/validation.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/analyze_failures.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/clickhouse_regression.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/common/known_failures.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/common/mod.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/common/test_data.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/create_view_security_comment_regression.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/custom_clickhouse_coverage.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/custom_clickhouse_parser.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/custom_dialect.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/custom_dialect_tests.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/custom_fixtures/datafusion/ddl.json +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/custom_fixtures/datafusion/dml.json +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/custom_fixtures/datafusion/functions.json +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/custom_fixtures/datafusion/identity.json +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/custom_fixtures/datafusion/operators.json +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/custom_fixtures/datafusion/select.json +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/custom_fixtures/datafusion/types.json +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/data_type_api.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/deep_nesting_regression.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/error_handling.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/fabric_tpch_regression.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/identity_roundtrip.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/postgres_regexp_clickhouse.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/postgres_sqlite_regression.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/query_analysis.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/query_analysis_regression.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/sqlglot_dialect_identity.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/sqlglot_identity.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/sqlglot_identity_detailed.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/sqlglot_parser.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/sqlglot_pretty.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/sqlglot_transpilation.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/sqlglot_transpile.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/tpch_transpile_stack.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-ast-derive/src/lib.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-function-catalogs/Cargo.toml +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-function-catalogs/README.md +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-function-catalogs/src/clickhouse.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-function-catalogs/src/duckdb.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-function-catalogs/src/lib.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-function-catalogs/tools/clickhouse/extract_functions.py +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-function-catalogs/tools/duckdb/extract_functions.py +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/Cargo.toml +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/README.md +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/docs/api.md +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/docs/index.md +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/mkdocs.yml +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/annotate_types.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/dialects.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/diff.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/errors.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/expr.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/format.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/generate.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/helpers.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/lib.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/lineage.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/openlineage.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/optimize.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/parse.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/query_analysis.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/tokenize.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/transforms.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/transpile.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/types.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/validate.rs +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/tests/conftest.py +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/tests/test_compat.py +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/tests/test_dialects.py +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/tests/test_diff.py +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/tests/test_expression.py +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/tests/test_format.py +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/tests/test_generate.py +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/tests/test_lineage.py +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/tests/test_optimize.py +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/tests/test_query_analysis.py +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/tests/test_transforms.py +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/tests/test_transpile.py +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/tests/test_validate.py +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/uv.lock +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/pyproject.toml +0 -0
- {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/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.6.
|
|
608
|
+
version = "0.6.2"
|
|
609
609
|
dependencies = [
|
|
610
610
|
"criterion",
|
|
611
611
|
"once_cell",
|
|
@@ -623,7 +623,7 @@ dependencies = [
|
|
|
623
623
|
|
|
624
624
|
[[package]]
|
|
625
625
|
name = "polyglot-sql-ast-derive"
|
|
626
|
-
version = "0.6.
|
|
626
|
+
version = "0.6.2"
|
|
627
627
|
dependencies = [
|
|
628
628
|
"proc-macro2",
|
|
629
629
|
"quote",
|
|
@@ -632,7 +632,7 @@ dependencies = [
|
|
|
632
632
|
|
|
633
633
|
[[package]]
|
|
634
634
|
name = "polyglot-sql-ffi"
|
|
635
|
-
version = "0.6.
|
|
635
|
+
version = "0.6.2"
|
|
636
636
|
dependencies = [
|
|
637
637
|
"cbindgen",
|
|
638
638
|
"polyglot-sql",
|
|
@@ -642,11 +642,11 @@ dependencies = [
|
|
|
642
642
|
|
|
643
643
|
[[package]]
|
|
644
644
|
name = "polyglot-sql-function-catalogs"
|
|
645
|
-
version = "0.6.
|
|
645
|
+
version = "0.6.2"
|
|
646
646
|
|
|
647
647
|
[[package]]
|
|
648
648
|
name = "polyglot-sql-python"
|
|
649
|
-
version = "0.6.
|
|
649
|
+
version = "0.6.2"
|
|
650
650
|
dependencies = [
|
|
651
651
|
"polyglot-sql",
|
|
652
652
|
"pyo3",
|
|
@@ -657,7 +657,7 @@ dependencies = [
|
|
|
657
657
|
|
|
658
658
|
[[package]]
|
|
659
659
|
name = "polyglot-sql-wasm"
|
|
660
|
-
version = "0.6.
|
|
660
|
+
version = "0.6.2"
|
|
661
661
|
dependencies = [
|
|
662
662
|
"console_error_panic_hook",
|
|
663
663
|
"js-sys",
|
|
@@ -100,14 +100,14 @@ function-catalog-all-dialects = [
|
|
|
100
100
|
]
|
|
101
101
|
|
|
102
102
|
[dependencies]
|
|
103
|
-
polyglot-sql-ast-derive = { path = "../polyglot-sql-ast-derive" }
|
|
103
|
+
polyglot-sql-ast-derive = { path = "../polyglot-sql-ast-derive", version = "0.6.2" }
|
|
104
104
|
serde = { workspace = true }
|
|
105
105
|
serde_json = { workspace = true }
|
|
106
106
|
thiserror = { workspace = true }
|
|
107
107
|
unicode-segmentation = { workspace = true }
|
|
108
108
|
stacker = { version = "0.1", optional = true }
|
|
109
109
|
ts-rs = { version = "12.0", features = ["serde-compat"], optional = true }
|
|
110
|
-
polyglot-sql-function-catalogs = { path = "../polyglot-sql-function-catalogs", version = "0.6.
|
|
110
|
+
polyglot-sql-function-catalogs = { path = "../polyglot-sql-function-catalogs", version = "0.6.2", optional = true, default-features = false }
|
|
111
111
|
|
|
112
112
|
[dev-dependencies]
|
|
113
113
|
pretty_assertions = "1.4"
|
|
@@ -142,3 +142,7 @@ harness = false
|
|
|
142
142
|
[[bench]]
|
|
143
143
|
name = "allocation_hotspots"
|
|
144
144
|
harness = false
|
|
145
|
+
|
|
146
|
+
[[bench]]
|
|
147
|
+
name = "lineage"
|
|
148
|
+
harness = false
|
|
@@ -25,7 +25,7 @@ By default, `polyglot-sql` enables the full public API. Parser-only consumers ca
|
|
|
25
25
|
disable default features and opt into only the dialect parsers they need:
|
|
26
26
|
|
|
27
27
|
```toml
|
|
28
|
-
polyglot-sql = { version = "0.6.
|
|
28
|
+
polyglot-sql = { version = "0.6.2", default-features = false }
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
```toml
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, SamplingMode};
|
|
2
|
+
use polyglot_sql::dialects::DialectType;
|
|
3
|
+
use polyglot_sql::lineage::lineage;
|
|
4
|
+
use polyglot_sql::parse_one;
|
|
5
|
+
use std::fmt::Write as _;
|
|
6
|
+
use std::hint::black_box;
|
|
7
|
+
use std::time::Duration;
|
|
8
|
+
|
|
9
|
+
const CTE_COUNTS: [usize; 4] = [4, 8, 16, 24];
|
|
10
|
+
const CTE_REFERENCE_COUNTS: [usize; 4] = [2, 4, 8, 16];
|
|
11
|
+
|
|
12
|
+
fn build_cte_chain(n: usize) -> String {
|
|
13
|
+
let mut sql = String::from(
|
|
14
|
+
"WITH\n c0 AS (\n SELECT x AS col, y FROM base_table WHERE y > 0\n \
|
|
15
|
+
UNION ALL\n SELECT x AS col, y FROM base_table WHERE y <= 0\n )",
|
|
16
|
+
);
|
|
17
|
+
for i in 1..n {
|
|
18
|
+
let _ = write!(
|
|
19
|
+
&mut sql,
|
|
20
|
+
",\n c{i} AS (\n SELECT c{prev}.col AS col, c{prev}.y AS y FROM c{prev}\n \
|
|
21
|
+
UNION ALL\n SELECT x AS col, y FROM base_table\n )",
|
|
22
|
+
i = i,
|
|
23
|
+
prev = i - 1,
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
let _ = write!(&mut sql, "\nSELECT col FROM c{}", n - 1);
|
|
27
|
+
sql
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
fn build_nested_cte_chain(n: usize) -> String {
|
|
31
|
+
let mut sql = "SELECT x AS col FROM base_table".to_string();
|
|
32
|
+
for i in 0..n {
|
|
33
|
+
sql = format!("WITH c{i} AS ({sql}) SELECT col FROM c{i}");
|
|
34
|
+
}
|
|
35
|
+
sql
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
fn build_reused_nested_cte(reference_count: usize) -> String {
|
|
39
|
+
let projection = (0..reference_count)
|
|
40
|
+
.map(|i| format!("s{i}.col"))
|
|
41
|
+
.collect::<Vec<_>>()
|
|
42
|
+
.join(" + ");
|
|
43
|
+
let sources = (0..reference_count)
|
|
44
|
+
.map(|i| format!("shared AS s{i}"))
|
|
45
|
+
.collect::<Vec<_>>()
|
|
46
|
+
.join(" CROSS JOIN ");
|
|
47
|
+
|
|
48
|
+
format!(
|
|
49
|
+
"WITH shared AS (\
|
|
50
|
+
WITH nested AS (SELECT x AS col FROM base_table) \
|
|
51
|
+
SELECT col FROM nested\
|
|
52
|
+
) SELECT {projection} AS col FROM {sources}"
|
|
53
|
+
)
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
fn configure_group(group: &mut criterion::BenchmarkGroup<'_, criterion::measurement::WallTime>) {
|
|
57
|
+
group.sampling_mode(SamplingMode::Flat);
|
|
58
|
+
group.warm_up_time(Duration::from_secs(1));
|
|
59
|
+
group.sample_size(30);
|
|
60
|
+
group.measurement_time(Duration::from_secs(5));
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
fn bench_lineage(
|
|
64
|
+
group: &mut criterion::BenchmarkGroup<'_, criterion::measurement::WallTime>,
|
|
65
|
+
n: usize,
|
|
66
|
+
sql: &str,
|
|
67
|
+
) {
|
|
68
|
+
let expr = parse_one(sql, DialectType::Generic).expect("benchmark query should parse");
|
|
69
|
+
|
|
70
|
+
assert!(
|
|
71
|
+
lineage("col", &expr, Some(DialectType::Generic), false).is_ok(),
|
|
72
|
+
"lineage should resolve for n={n} (did we exceed MAX_LINEAGE_DEPTH?)",
|
|
73
|
+
);
|
|
74
|
+
|
|
75
|
+
group.bench_with_input(BenchmarkId::from_parameter(n), &expr, |b, expr| {
|
|
76
|
+
b.iter(|| {
|
|
77
|
+
black_box(lineage(
|
|
78
|
+
black_box("col"),
|
|
79
|
+
black_box(expr),
|
|
80
|
+
Some(DialectType::Generic),
|
|
81
|
+
false,
|
|
82
|
+
))
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
fn bench_cte_chain(c: &mut Criterion) {
|
|
88
|
+
let mut group = c.benchmark_group("lineage_cte_chain");
|
|
89
|
+
configure_group(&mut group);
|
|
90
|
+
|
|
91
|
+
for n in CTE_COUNTS {
|
|
92
|
+
let sql = build_cte_chain(n);
|
|
93
|
+
bench_lineage(&mut group, n, &sql);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
group.finish();
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
fn bench_nested_cte_chain(c: &mut Criterion) {
|
|
100
|
+
let mut group = c.benchmark_group("lineage_nested_cte_chain");
|
|
101
|
+
configure_group(&mut group);
|
|
102
|
+
|
|
103
|
+
for n in CTE_COUNTS {
|
|
104
|
+
let sql = build_nested_cte_chain(n);
|
|
105
|
+
bench_lineage(&mut group, n, &sql);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
group.finish();
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
fn bench_reused_nested_cte(c: &mut Criterion) {
|
|
112
|
+
let mut group = c.benchmark_group("lineage_reused_nested_cte");
|
|
113
|
+
configure_group(&mut group);
|
|
114
|
+
|
|
115
|
+
for n in CTE_REFERENCE_COUNTS {
|
|
116
|
+
let sql = build_reused_nested_cte(n);
|
|
117
|
+
bench_lineage(&mut group, n, &sql);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
group.finish();
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
criterion_group!(
|
|
124
|
+
benches,
|
|
125
|
+
bench_cte_chain,
|
|
126
|
+
bench_nested_cte_chain,
|
|
127
|
+
bench_reused_nested_cte
|
|
128
|
+
);
|
|
129
|
+
criterion_main!(benches);
|