data-flow-control 0.1.3__tar.gz → 0.1.4__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.
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/Cargo.lock +73 -74
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/Cargo.toml +1 -1
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/PKG-INFO +1 -1
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/rewriter/plan/actions.rs +11 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/rewriter/resolution.rs +88 -1
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/rewriter/select.rs +2 -0
- data_flow_control-0.1.4/passant-core/tests/execution/kill.rs +116 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/gaps/insert_shapes.rs +74 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/rewrite/scan.rs +28 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/pyproject.toml +1 -1
- data_flow_control-0.1.3/passant-core/tests/execution/kill.rs +0 -48
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/LICENSE +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/Cargo.toml +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/benches/rewrite_perf.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/aggregate_registry.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/catalog.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/diagnostics.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/explain.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/full_push.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/identifiers.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/intern.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/ir.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/lib.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/optimizer.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/parser.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/partial_push.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/planner.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/policy.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/policy_compile.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/policy_index.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/policy_parser.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/policy_pgn.pest +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/policy_store/branch.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/policy_store/compiled.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/policy_store/delete.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/policy_store/indexes.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/policy_store/memory.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/policy_store/mod.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/query_analysis.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/rewrite_stats.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/rewrite_strategy.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/rewriter/aggregates.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/rewriter/columns.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/rewriter/constraint_preprocess.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/rewriter/derived_policy.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/rewriter/dimensions.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/rewriter/exists.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/rewriter/expr.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/rewriter/helpers.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/rewriter/limit.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/rewriter/mod.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/rewriter/plan/applicability.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/rewriter/plan/dominance.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/rewriter/plan/mod.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/rewriter/plan/scope_plan.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/rewriter/plan/write_plan.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/rewriter/policy_expr.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/rewriter/projection.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/rewriter/scope.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/rewriter/types.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/rewriter/write_path.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/semiring.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/source_set_index.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/source_sets/analysis.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/source_sets/annotations.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/source_sets/branch.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/source_sets/mod.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/source_sets/rewrites.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/source_sets/split.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/sql/ast_stats.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/sql/builders.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/sql/columns.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/sql/dialect.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/sql/expr.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/sql/expr_key.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/sql/mod.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/sql/parse.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/sql/render.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/statement_tables.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/threshold.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/common/duckdb.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/common/mod.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/completion/conformance.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/completion/main.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/completion/partial_push.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/completion/pgn.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/completion/pgn_unique.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/completion/policy_storage.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/completion/rewrite_api_parity.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/completion/semiring.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/completion/source_sets.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/completion/symmetric_self_join.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/completion/threshold.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/completion/unique_not_unique.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/dialect.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/execution/insert.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/execution/main.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/execution/oracle.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/execution/remove.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/execution/update.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/expected/duckdb/remove_scan.sql +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/expected/postgres/remove_scan.sql +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/expected/sqlite/remove_scan.sql +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/explain_strategy.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/gaps/column_propagation.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/gaps/dimensions.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/gaps/exists_join.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/gaps/having_where.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/gaps/identifiers.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/gaps/main.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/gaps/multi_source.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/gaps/operators.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/gaps/query_shapes.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/gaps/scalar_subquery.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/indexed_candidate_differential.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/insert_values_body.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/paper_examples.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/parser.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/planner.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/policy.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/policy_dialect.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/policy_store_memory.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/rewrite/derived_policy.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/rewrite/in_semijoin.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/rewrite/insert.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/rewrite/joins.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/rewrite/main.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/rewrite/output.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/rewrite/recursive.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/rewrite/update.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/rewrite_candidate_regression.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/rewrite_fast_paths.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/rewrite_large_registry.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/rewrite_stats_timings.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/scan_ready_expr.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/source_set_split_no_parse.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/sql_builders.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/sql_columns.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/tests/ui_resolution.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-py/Cargo.toml +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-py/src/bindings/catalog.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-py/src/bindings/errors.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-py/src/bindings/mod.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-py/src/bindings/planner.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-py/src/bindings/policy.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-py/src/bindings/stats.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-py/src/lib.rs +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/python/data_flow_control/__init__.py +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/python/data_flow_control/_rust.py +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/python/data_flow_control/adapters/__init__.py +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/python/data_flow_control/adapters/base.py +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/python/data_flow_control/adapters/clickhouse.py +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/python/data_flow_control/adapters/datafusion.py +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/python/data_flow_control/adapters/duckdb.py +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/python/data_flow_control/adapters/kill.py +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/python/data_flow_control/adapters/pg_catalog.py +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/python/data_flow_control/adapters/postgres.py +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/python/data_flow_control/adapters/registry.py +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/python/data_flow_control/adapters/sqlite.py +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/python/data_flow_control/adapters/umbra.py +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/python/data_flow_control/aggregate_introspection.py +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/python/data_flow_control/catalog.py +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/python/data_flow_control/connection.py +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/python/data_flow_control/dialect.py +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/python/data_flow_control/langchain/__init__.py +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/python/data_flow_control/langchain/agent.py +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/python/data_flow_control/langchain/call_tool_with_dataflow.py +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/python/data_flow_control/langchain/database.py +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/python/data_flow_control/langchain/middleware.py +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/python/data_flow_control/langchain/schema.py +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/python/data_flow_control/langchain/sql_validation.py +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/python/data_flow_control/langchain/tool_spec.py +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/python/data_flow_control/langchain/wrapper.py +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/python/data_flow_control/options.py +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/python/data_flow_control/planner.py +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/python/data_flow_control/policy.py +0 -0
- {data_flow_control-0.1.3 → data_flow_control-0.1.4}/python/data_flow_control/ui.py +0 -0
|
@@ -323,9 +323,9 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
|
|
|
323
323
|
|
|
324
324
|
[[package]]
|
|
325
325
|
name = "autocfg"
|
|
326
|
-
version = "1.5.
|
|
326
|
+
version = "1.5.1"
|
|
327
327
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
328
|
-
checksum = "
|
|
328
|
+
checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
|
|
329
329
|
|
|
330
330
|
[[package]]
|
|
331
331
|
name = "base64"
|
|
@@ -335,9 +335,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
|
|
|
335
335
|
|
|
336
336
|
[[package]]
|
|
337
337
|
name = "bitflags"
|
|
338
|
-
version = "2.
|
|
338
|
+
version = "2.13.0"
|
|
339
339
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
340
|
-
checksum = "
|
|
340
|
+
checksum = "b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8"
|
|
341
341
|
|
|
342
342
|
[[package]]
|
|
343
343
|
name = "bitvec"
|
|
@@ -449,9 +449,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
|
|
|
449
449
|
|
|
450
450
|
[[package]]
|
|
451
451
|
name = "cc"
|
|
452
|
-
version = "1.2.
|
|
452
|
+
version = "1.2.64"
|
|
453
453
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
454
|
-
checksum = "
|
|
454
|
+
checksum = "dad887fd958be91b5098c0248def011f4523ab786cd411be668777e55063501f"
|
|
455
455
|
dependencies = [
|
|
456
456
|
"find-msvc-tools",
|
|
457
457
|
"jobserver",
|
|
@@ -473,9 +473,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
|
|
|
473
473
|
|
|
474
474
|
[[package]]
|
|
475
475
|
name = "chrono"
|
|
476
|
-
version = "0.4.
|
|
476
|
+
version = "0.4.45"
|
|
477
477
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
478
|
-
checksum = "
|
|
478
|
+
checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327"
|
|
479
479
|
dependencies = [
|
|
480
480
|
"iana-time-zone",
|
|
481
481
|
"num-traits",
|
|
@@ -511,9 +511,9 @@ dependencies = [
|
|
|
511
511
|
|
|
512
512
|
[[package]]
|
|
513
513
|
name = "clap"
|
|
514
|
-
version = "4.6.
|
|
514
|
+
version = "4.6.1"
|
|
515
515
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
516
|
-
checksum = "
|
|
516
|
+
checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51"
|
|
517
517
|
dependencies = [
|
|
518
518
|
"clap_builder",
|
|
519
519
|
"clap_derive",
|
|
@@ -533,9 +533,9 @@ dependencies = [
|
|
|
533
533
|
|
|
534
534
|
[[package]]
|
|
535
535
|
name = "clap_derive"
|
|
536
|
-
version = "4.6.
|
|
536
|
+
version = "4.6.1"
|
|
537
537
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
538
|
-
checksum = "
|
|
538
|
+
checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9"
|
|
539
539
|
dependencies = [
|
|
540
540
|
"heck",
|
|
541
541
|
"proc-macro2",
|
|
@@ -744,9 +744,9 @@ dependencies = [
|
|
|
744
744
|
|
|
745
745
|
[[package]]
|
|
746
746
|
name = "displaydoc"
|
|
747
|
-
version = "0.2.
|
|
747
|
+
version = "0.2.6"
|
|
748
748
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
749
|
-
checksum = "
|
|
749
|
+
checksum = "1ac70aa55017e108007fbaf5aa0f54b021c98f92ff8af59d42eda9da96e3dd4f"
|
|
750
750
|
dependencies = [
|
|
751
751
|
"proc-macro2",
|
|
752
752
|
"quote",
|
|
@@ -1008,9 +1008,9 @@ checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c"
|
|
|
1008
1008
|
|
|
1009
1009
|
[[package]]
|
|
1010
1010
|
name = "http"
|
|
1011
|
-
version = "1.4.
|
|
1011
|
+
version = "1.4.2"
|
|
1012
1012
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1013
|
-
checksum = "
|
|
1013
|
+
checksum = "6970f50e31d6fc17d3fa27329444bfa74e196cf62e95052a3f6fee181dba6425"
|
|
1014
1014
|
dependencies = [
|
|
1015
1015
|
"bytes",
|
|
1016
1016
|
"itoa",
|
|
@@ -1047,9 +1047,9 @@ checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87"
|
|
|
1047
1047
|
|
|
1048
1048
|
[[package]]
|
|
1049
1049
|
name = "hyper"
|
|
1050
|
-
version = "1.
|
|
1050
|
+
version = "1.10.1"
|
|
1051
1051
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1052
|
-
checksum = "
|
|
1052
|
+
checksum = "55281c53a1894c864990125767da440a4e630446785086f52523b20033b74498"
|
|
1053
1053
|
dependencies = [
|
|
1054
1054
|
"atomic-waker",
|
|
1055
1055
|
"bytes",
|
|
@@ -1300,13 +1300,12 @@ dependencies = [
|
|
|
1300
1300
|
|
|
1301
1301
|
[[package]]
|
|
1302
1302
|
name = "js-sys"
|
|
1303
|
-
version = "0.3.
|
|
1303
|
+
version = "0.3.102"
|
|
1304
1304
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1305
|
-
checksum = "
|
|
1305
|
+
checksum = "03d04c30968dffe80775bd4d7fb676131cd04a1fb46d2686dbffbaec2d9dfd31"
|
|
1306
1306
|
dependencies = [
|
|
1307
1307
|
"cfg-if",
|
|
1308
1308
|
"futures-util",
|
|
1309
|
-
"once_cell",
|
|
1310
1309
|
"wasm-bindgen",
|
|
1311
1310
|
]
|
|
1312
1311
|
|
|
@@ -1369,9 +1368,9 @@ dependencies = [
|
|
|
1369
1368
|
|
|
1370
1369
|
[[package]]
|
|
1371
1370
|
name = "libc"
|
|
1372
|
-
version = "0.2.
|
|
1371
|
+
version = "0.2.186"
|
|
1373
1372
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1374
|
-
checksum = "
|
|
1373
|
+
checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66"
|
|
1375
1374
|
|
|
1376
1375
|
[[package]]
|
|
1377
1376
|
name = "libduckdb-sys"
|
|
@@ -1425,9 +1424,9 @@ dependencies = [
|
|
|
1425
1424
|
|
|
1426
1425
|
[[package]]
|
|
1427
1426
|
name = "log"
|
|
1428
|
-
version = "0.4.
|
|
1427
|
+
version = "0.4.32"
|
|
1429
1428
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1430
|
-
checksum = "
|
|
1429
|
+
checksum = "953f07c43838f8e6f9758cab68bf5bed85465e7587ebe0b823f1bcd81978ad3a"
|
|
1431
1430
|
|
|
1432
1431
|
[[package]]
|
|
1433
1432
|
name = "lru-slab"
|
|
@@ -1437,9 +1436,9 @@ checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154"
|
|
|
1437
1436
|
|
|
1438
1437
|
[[package]]
|
|
1439
1438
|
name = "memchr"
|
|
1440
|
-
version = "2.8.
|
|
1439
|
+
version = "2.8.2"
|
|
1441
1440
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1442
|
-
checksum = "
|
|
1441
|
+
checksum = "88904434abc2901f197fe8cc55f0445e7ded921dba5911dad2e2b39b48e663c4"
|
|
1443
1442
|
|
|
1444
1443
|
[[package]]
|
|
1445
1444
|
name = "memoffset"
|
|
@@ -1462,9 +1461,9 @@ dependencies = [
|
|
|
1462
1461
|
|
|
1463
1462
|
[[package]]
|
|
1464
1463
|
name = "mio"
|
|
1465
|
-
version = "1.2.
|
|
1464
|
+
version = "1.2.1"
|
|
1466
1465
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1467
|
-
checksum = "
|
|
1466
|
+
checksum = "02bd0af71c67b473010cbbc60715ee815645a4dc942899111f494b4b737d6fda"
|
|
1468
1467
|
dependencies = [
|
|
1469
1468
|
"libc",
|
|
1470
1469
|
"wasi",
|
|
@@ -1594,7 +1593,7 @@ dependencies = [
|
|
|
1594
1593
|
|
|
1595
1594
|
[[package]]
|
|
1596
1595
|
name = "passant-cli"
|
|
1597
|
-
version = "0.1.
|
|
1596
|
+
version = "0.1.4"
|
|
1598
1597
|
dependencies = [
|
|
1599
1598
|
"anyhow",
|
|
1600
1599
|
"assert_cmd",
|
|
@@ -1606,7 +1605,7 @@ dependencies = [
|
|
|
1606
1605
|
|
|
1607
1606
|
[[package]]
|
|
1608
1607
|
name = "passant-core"
|
|
1609
|
-
version = "0.1.
|
|
1608
|
+
version = "0.1.4"
|
|
1610
1609
|
dependencies = [
|
|
1611
1610
|
"anyhow",
|
|
1612
1611
|
"criterion",
|
|
@@ -1624,7 +1623,7 @@ dependencies = [
|
|
|
1624
1623
|
|
|
1625
1624
|
[[package]]
|
|
1626
1625
|
name = "passant-py"
|
|
1627
|
-
version = "0.1.
|
|
1626
|
+
version = "0.1.4"
|
|
1628
1627
|
dependencies = [
|
|
1629
1628
|
"passant-core",
|
|
1630
1629
|
"pyo3",
|
|
@@ -2052,9 +2051,9 @@ dependencies = [
|
|
|
2052
2051
|
|
|
2053
2052
|
[[package]]
|
|
2054
2053
|
name = "regex"
|
|
2055
|
-
version = "1.12.
|
|
2054
|
+
version = "1.12.4"
|
|
2056
2055
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2057
|
-
checksum = "
|
|
2056
|
+
checksum = "f1292b7759ae1cb9ec195452d1390a074f0cd8541ab7a5a8c31cd6db45d4a6ba"
|
|
2058
2057
|
dependencies = [
|
|
2059
2058
|
"aho-corasick",
|
|
2060
2059
|
"memchr",
|
|
@@ -2075,9 +2074,9 @@ dependencies = [
|
|
|
2075
2074
|
|
|
2076
2075
|
[[package]]
|
|
2077
2076
|
name = "regex-syntax"
|
|
2078
|
-
version = "0.8.
|
|
2077
|
+
version = "0.8.11"
|
|
2079
2078
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2080
|
-
checksum = "
|
|
2079
|
+
checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4"
|
|
2081
2080
|
|
|
2082
2081
|
[[package]]
|
|
2083
2082
|
name = "rend"
|
|
@@ -2183,9 +2182,9 @@ dependencies = [
|
|
|
2183
2182
|
|
|
2184
2183
|
[[package]]
|
|
2185
2184
|
name = "rust_decimal"
|
|
2186
|
-
version = "1.42.
|
|
2185
|
+
version = "1.42.1"
|
|
2187
2186
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2188
|
-
checksum = "
|
|
2187
|
+
checksum = "be2a24f50780bc85f09cc6ac299bdf1424302742d77221106859c9d8b102126a"
|
|
2189
2188
|
dependencies = [
|
|
2190
2189
|
"arrayvec",
|
|
2191
2190
|
"borsh",
|
|
@@ -2330,9 +2329,9 @@ dependencies = [
|
|
|
2330
2329
|
|
|
2331
2330
|
[[package]]
|
|
2332
2331
|
name = "serde_json"
|
|
2333
|
-
version = "1.0.
|
|
2332
|
+
version = "1.0.150"
|
|
2334
2333
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2335
|
-
checksum = "
|
|
2334
|
+
checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9"
|
|
2336
2335
|
dependencies = [
|
|
2337
2336
|
"itoa",
|
|
2338
2337
|
"memchr",
|
|
@@ -2366,9 +2365,9 @@ dependencies = [
|
|
|
2366
2365
|
|
|
2367
2366
|
[[package]]
|
|
2368
2367
|
name = "shlex"
|
|
2369
|
-
version = "
|
|
2368
|
+
version = "2.0.1"
|
|
2370
2369
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2371
|
-
checksum = "
|
|
2370
|
+
checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
|
|
2372
2371
|
|
|
2373
2372
|
[[package]]
|
|
2374
2373
|
name = "simd-adler32"
|
|
@@ -2390,15 +2389,15 @@ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
|
|
|
2390
2389
|
|
|
2391
2390
|
[[package]]
|
|
2392
2391
|
name = "smallvec"
|
|
2393
|
-
version = "1.15.
|
|
2392
|
+
version = "1.15.2"
|
|
2394
2393
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2395
|
-
checksum = "
|
|
2394
|
+
checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90"
|
|
2396
2395
|
|
|
2397
2396
|
[[package]]
|
|
2398
2397
|
name = "socket2"
|
|
2399
|
-
version = "0.6.
|
|
2398
|
+
version = "0.6.4"
|
|
2400
2399
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2401
|
-
checksum = "
|
|
2400
|
+
checksum = "52d1cfed4120b4d927bf7c0f86d2087a4a7d6027c906d9f9d525a80573b9be51"
|
|
2402
2401
|
dependencies = [
|
|
2403
2402
|
"libc",
|
|
2404
2403
|
"windows-sys 0.61.2",
|
|
@@ -2623,9 +2622,9 @@ dependencies = [
|
|
|
2623
2622
|
|
|
2624
2623
|
[[package]]
|
|
2625
2624
|
name = "toml_edit"
|
|
2626
|
-
version = "0.25.
|
|
2625
|
+
version = "0.25.12+spec-1.1.0"
|
|
2627
2626
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2628
|
-
checksum = "
|
|
2627
|
+
checksum = "d2153edc6955a6c354fad8f5efd38b6a8769bdccf9fe50f8e1329f81b0baa5d7"
|
|
2629
2628
|
dependencies = [
|
|
2630
2629
|
"indexmap",
|
|
2631
2630
|
"toml_datetime",
|
|
@@ -2732,9 +2731,9 @@ checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
|
|
|
2732
2731
|
|
|
2733
2732
|
[[package]]
|
|
2734
2733
|
name = "unicode-segmentation"
|
|
2735
|
-
version = "1.13.
|
|
2734
|
+
version = "1.13.3"
|
|
2736
2735
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2737
|
-
checksum = "
|
|
2736
|
+
checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8"
|
|
2738
2737
|
|
|
2739
2738
|
[[package]]
|
|
2740
2739
|
name = "unicode-width"
|
|
@@ -2780,9 +2779,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
|
|
|
2780
2779
|
|
|
2781
2780
|
[[package]]
|
|
2782
2781
|
name = "uuid"
|
|
2783
|
-
version = "1.23.
|
|
2782
|
+
version = "1.23.3"
|
|
2784
2783
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2785
|
-
checksum = "
|
|
2784
|
+
checksum = "144d6b123cef80b301b8f72a9e2ca4370ddec21950d0a103dd22c437006d2db7"
|
|
2786
2785
|
dependencies = [
|
|
2787
2786
|
"js-sys",
|
|
2788
2787
|
"wasm-bindgen",
|
|
@@ -2836,18 +2835,18 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
|
|
|
2836
2835
|
|
|
2837
2836
|
[[package]]
|
|
2838
2837
|
name = "wasip2"
|
|
2839
|
-
version = "1.0.
|
|
2838
|
+
version = "1.0.4+wasi-0.2.12"
|
|
2840
2839
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2841
|
-
checksum = "
|
|
2840
|
+
checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487"
|
|
2842
2841
|
dependencies = [
|
|
2843
2842
|
"wit-bindgen",
|
|
2844
2843
|
]
|
|
2845
2844
|
|
|
2846
2845
|
[[package]]
|
|
2847
2846
|
name = "wasm-bindgen"
|
|
2848
|
-
version = "0.2.
|
|
2847
|
+
version = "0.2.125"
|
|
2849
2848
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2850
|
-
checksum = "
|
|
2849
|
+
checksum = "8ddb3f79143bced6de84270411622a2699cee572fc0875aeaf1e7867cf9fca1a"
|
|
2851
2850
|
dependencies = [
|
|
2852
2851
|
"cfg-if",
|
|
2853
2852
|
"once_cell",
|
|
@@ -2859,9 +2858,9 @@ dependencies = [
|
|
|
2859
2858
|
|
|
2860
2859
|
[[package]]
|
|
2861
2860
|
name = "wasm-bindgen-futures"
|
|
2862
|
-
version = "0.4.
|
|
2861
|
+
version = "0.4.75"
|
|
2863
2862
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2864
|
-
checksum = "
|
|
2863
|
+
checksum = "503b14d284f2c8dac03b819967e155ea753f573586193b2b2c95990cb5d69280"
|
|
2865
2864
|
dependencies = [
|
|
2866
2865
|
"js-sys",
|
|
2867
2866
|
"wasm-bindgen",
|
|
@@ -2869,9 +2868,9 @@ dependencies = [
|
|
|
2869
2868
|
|
|
2870
2869
|
[[package]]
|
|
2871
2870
|
name = "wasm-bindgen-macro"
|
|
2872
|
-
version = "0.2.
|
|
2871
|
+
version = "0.2.125"
|
|
2873
2872
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2874
|
-
checksum = "
|
|
2873
|
+
checksum = "4e21a184b13fb19e157296e2c46056aec9092264fab83e4ba59e68c61b323c3d"
|
|
2875
2874
|
dependencies = [
|
|
2876
2875
|
"quote",
|
|
2877
2876
|
"wasm-bindgen-macro-support",
|
|
@@ -2879,9 +2878,9 @@ dependencies = [
|
|
|
2879
2878
|
|
|
2880
2879
|
[[package]]
|
|
2881
2880
|
name = "wasm-bindgen-macro-support"
|
|
2882
|
-
version = "0.2.
|
|
2881
|
+
version = "0.2.125"
|
|
2883
2882
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2884
|
-
checksum = "
|
|
2883
|
+
checksum = "fecefd9c35bd935a20fc3fc344b5f29138961e4f47fb03297d88f2587afb5ebd"
|
|
2885
2884
|
dependencies = [
|
|
2886
2885
|
"bumpalo",
|
|
2887
2886
|
"proc-macro2",
|
|
@@ -2892,18 +2891,18 @@ dependencies = [
|
|
|
2892
2891
|
|
|
2893
2892
|
[[package]]
|
|
2894
2893
|
name = "wasm-bindgen-shared"
|
|
2895
|
-
version = "0.2.
|
|
2894
|
+
version = "0.2.125"
|
|
2896
2895
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2897
|
-
checksum = "
|
|
2896
|
+
checksum = "23939e44bb9a5d7576fa2b563dc2e136628f1224e88a8deed09e04858b77871f"
|
|
2898
2897
|
dependencies = [
|
|
2899
2898
|
"unicode-ident",
|
|
2900
2899
|
]
|
|
2901
2900
|
|
|
2902
2901
|
[[package]]
|
|
2903
2902
|
name = "web-sys"
|
|
2904
|
-
version = "0.3.
|
|
2903
|
+
version = "0.3.102"
|
|
2905
2904
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2906
|
-
checksum = "
|
|
2905
|
+
checksum = "a6430a72df5eb332242960fe84b3002a241163998241eb596d4f739b9757061d"
|
|
2907
2906
|
dependencies = [
|
|
2908
2907
|
"js-sys",
|
|
2909
2908
|
"wasm-bindgen",
|
|
@@ -3231,9 +3230,9 @@ checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049"
|
|
|
3231
3230
|
|
|
3232
3231
|
[[package]]
|
|
3233
3232
|
name = "yoke"
|
|
3234
|
-
version = "0.8.
|
|
3233
|
+
version = "0.8.3"
|
|
3235
3234
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3236
|
-
checksum = "
|
|
3235
|
+
checksum = "709fe23a0424b6a435d82152b1bd3fdfb0833487d5fa90d05d42762a9891fef5"
|
|
3237
3236
|
dependencies = [
|
|
3238
3237
|
"stable_deref_trait",
|
|
3239
3238
|
"yoke-derive",
|
|
@@ -3254,18 +3253,18 @@ dependencies = [
|
|
|
3254
3253
|
|
|
3255
3254
|
[[package]]
|
|
3256
3255
|
name = "zerocopy"
|
|
3257
|
-
version = "0.8.
|
|
3256
|
+
version = "0.8.52"
|
|
3258
3257
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3259
|
-
checksum = "
|
|
3258
|
+
checksum = "ce1022995ff5ff5d841ad7d994facc23098cd40152f2c1d11cd607c6f530653f"
|
|
3260
3259
|
dependencies = [
|
|
3261
3260
|
"zerocopy-derive",
|
|
3262
3261
|
]
|
|
3263
3262
|
|
|
3264
3263
|
[[package]]
|
|
3265
3264
|
name = "zerocopy-derive"
|
|
3266
|
-
version = "0.8.
|
|
3265
|
+
version = "0.8.52"
|
|
3267
3266
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3268
|
-
checksum = "
|
|
3267
|
+
checksum = "1ae7f38b72ec2a254e2b87ef277cf2cd4fb97cbebf944faa6f33354da0867930"
|
|
3269
3268
|
dependencies = [
|
|
3270
3269
|
"proc-macro2",
|
|
3271
3270
|
"quote",
|
|
@@ -3295,9 +3294,9 @@ dependencies = [
|
|
|
3295
3294
|
|
|
3296
3295
|
[[package]]
|
|
3297
3296
|
name = "zeroize"
|
|
3298
|
-
version = "1.
|
|
3297
|
+
version = "1.9.0"
|
|
3299
3298
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3300
|
-
checksum = "
|
|
3299
|
+
checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e"
|
|
3301
3300
|
|
|
3302
3301
|
[[package]]
|
|
3303
3302
|
name = "zerotrie"
|
{data_flow_control-0.1.3 → data_flow_control-0.1.4}/passant-core/src/rewriter/plan/actions.rs
RENAMED
|
@@ -235,11 +235,18 @@ pub(crate) fn apply_policy_resolution_actions(
|
|
|
235
235
|
));
|
|
236
236
|
}
|
|
237
237
|
|
|
238
|
+
let mut kill_filters = Vec::new();
|
|
239
|
+
|
|
238
240
|
for action in actions {
|
|
239
241
|
match action {
|
|
240
242
|
PolicyResolutionAction::Filter { filter, .. } => {
|
|
241
243
|
add_filter(select, filter.clone(), is_aggregation)?;
|
|
242
244
|
}
|
|
245
|
+
PolicyResolutionAction::TupleUdf {
|
|
246
|
+
filter, udf_name, ..
|
|
247
|
+
} if udf_name.eq_ignore_ascii_case(PASSANT_KILL_UDF) => {
|
|
248
|
+
kill_filters.push(filter.clone());
|
|
249
|
+
}
|
|
243
250
|
PolicyResolutionAction::TupleUdf {
|
|
244
251
|
filter, udf_name, ..
|
|
245
252
|
} => {
|
|
@@ -268,6 +275,10 @@ pub(crate) fn apply_policy_resolution_actions(
|
|
|
268
275
|
}
|
|
269
276
|
}
|
|
270
277
|
}
|
|
278
|
+
if let Some(combined) = kill_filters.into_iter().reduce(and_expr) {
|
|
279
|
+
let inner = std::mem::replace(select, crate::sql::empty_select());
|
|
280
|
+
*select = wrap_select_with_tuple_resolution(inner, combined, PASSANT_KILL_UDF)?;
|
|
281
|
+
}
|
|
271
282
|
Ok(())
|
|
272
283
|
}
|
|
273
284
|
|
|
@@ -33,9 +33,53 @@ pub(crate) const RELATION_INPUT_CTE: &str = "__passant_relation_input";
|
|
|
33
33
|
pub(crate) const RELATION_AGG_CTE: &str = "__passant_relation_agg";
|
|
34
34
|
pub(crate) const RELATION_BATCH_VIOLATION_COLUMN: &str = "__passant_batch_violation";
|
|
35
35
|
pub(crate) const PASSANT_KILL_UDF: &str = "passant_kill";
|
|
36
|
+
pub(crate) const PASSANT_KILL_WRAPPER: &str = "__passant_kill";
|
|
36
37
|
pub(crate) const UI_ADDRESS_VIOLATING_ROWS_UDF: &str = "address_violating_rows";
|
|
37
38
|
pub(crate) const PASSANT_UI_APPROVE_UDF: &str = "passant_ui_approve";
|
|
38
39
|
|
|
40
|
+
/// After KILL wrapping, the outer query is `SELECT * FROM __passant_kill` while
|
|
41
|
+
/// `ORDER BY` may still reference the original table aliases. Unqualify them.
|
|
42
|
+
pub(crate) fn remap_query_order_by_after_kill_wrap(query: &mut Query) {
|
|
43
|
+
if query.order_by.is_none() {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
let SetExpr::Select(select) = query.body.as_mut() else {
|
|
47
|
+
return;
|
|
48
|
+
};
|
|
49
|
+
if !is_kill_wrapped_select(select) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
if let Some(order_by) = query.order_by.as_mut() {
|
|
53
|
+
for item in &mut order_by.exprs {
|
|
54
|
+
crate::rewriter::columns::unqualify_columns(&mut item.expr);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
fn is_kill_wrapped_select(select: &Select) -> bool {
|
|
60
|
+
if select.projection.len() != 1 {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
if !matches!(
|
|
64
|
+
select.projection.first(),
|
|
65
|
+
Some(SelectItem::Wildcard(_))
|
|
66
|
+
) {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
let Some(TableWithJoins {
|
|
70
|
+
relation:
|
|
71
|
+
TableFactor::Derived {
|
|
72
|
+
alias: Some(alias), ..
|
|
73
|
+
},
|
|
74
|
+
joins,
|
|
75
|
+
..
|
|
76
|
+
}) = select.from.first()
|
|
77
|
+
else {
|
|
78
|
+
return false;
|
|
79
|
+
};
|
|
80
|
+
alias.name.value == PASSANT_KILL_WRAPPER && joins.is_empty()
|
|
81
|
+
}
|
|
82
|
+
|
|
39
83
|
#[derive(Debug, Clone)]
|
|
40
84
|
pub(crate) struct UiResolutionSpec {
|
|
41
85
|
pub constraint: String,
|
|
@@ -98,7 +142,7 @@ pub(crate) fn wrap_select_with_tuple_resolution(
|
|
|
98
142
|
relation: TableFactor::Derived {
|
|
99
143
|
lateral: false,
|
|
100
144
|
subquery: Box::new(final_query),
|
|
101
|
-
alias: Some(crate::sql::table_alias(
|
|
145
|
+
alias: Some(crate::sql::table_alias(PASSANT_KILL_WRAPPER)),
|
|
102
146
|
},
|
|
103
147
|
joins: Vec::new(),
|
|
104
148
|
}];
|
|
@@ -673,6 +717,49 @@ mod tests {
|
|
|
673
717
|
assert!(sql.contains("__passant_kill"));
|
|
674
718
|
}
|
|
675
719
|
|
|
720
|
+
#[test]
|
|
721
|
+
fn kill_wrap_remaps_qualified_order_by() {
|
|
722
|
+
let mut inner = empty_select();
|
|
723
|
+
inner.projection = vec![alias_expr(qualified_column("receipts", "id"), "id")];
|
|
724
|
+
inner.from = vec![TableWithJoins {
|
|
725
|
+
relation: table_factor("receipts"),
|
|
726
|
+
joins: Vec::new(),
|
|
727
|
+
}];
|
|
728
|
+
let mut query = query_from_select(inner);
|
|
729
|
+
query.order_by = Some(sqlparser::ast::OrderBy {
|
|
730
|
+
exprs: vec![sqlparser::ast::OrderByExpr {
|
|
731
|
+
expr: qualified_column("receipts", "id"),
|
|
732
|
+
asc: None,
|
|
733
|
+
nulls_first: None,
|
|
734
|
+
with_fill: None,
|
|
735
|
+
}],
|
|
736
|
+
interpolate: None,
|
|
737
|
+
});
|
|
738
|
+
|
|
739
|
+
let wrapped = wrap_select_with_tuple_resolution(
|
|
740
|
+
match query.body.as_ref() {
|
|
741
|
+
SetExpr::Select(select) => select.as_ref().clone(),
|
|
742
|
+
_ => unreachable!(),
|
|
743
|
+
},
|
|
744
|
+
binary_comparison(
|
|
745
|
+
qualified_column("receipts", "id"),
|
|
746
|
+
sqlparser::ast::BinaryOperator::Gt,
|
|
747
|
+
crate::sql::int_literal(0),
|
|
748
|
+
),
|
|
749
|
+
PASSANT_KILL_UDF,
|
|
750
|
+
)
|
|
751
|
+
.expect("wrap");
|
|
752
|
+
query.body = Box::new(SetExpr::Select(Box::new(wrapped)));
|
|
753
|
+
remap_query_order_by_after_kill_wrap(&mut query);
|
|
754
|
+
|
|
755
|
+
let sql = render_statement(&crate::sql::statement_from_query(query), None);
|
|
756
|
+
assert!(sql.contains("ORDER BY id"), "expected unqualified ORDER BY: {sql}");
|
|
757
|
+
assert!(
|
|
758
|
+
!sql.contains("ORDER BY receipts."),
|
|
759
|
+
"qualified ORDER BY should be remapped: {sql}"
|
|
760
|
+
);
|
|
761
|
+
}
|
|
762
|
+
|
|
676
763
|
#[test]
|
|
677
764
|
fn tuple_resolution_emits_t1_through_t4_ctes() {
|
|
678
765
|
let mut inner = empty_select();
|
|
@@ -20,6 +20,7 @@ use super::derived_policy::{
|
|
|
20
20
|
use super::exists::apply_in_semijoin_policy_filters;
|
|
21
21
|
use super::helpers::select_output_column_mapping;
|
|
22
22
|
use super::limit::wrap_limited_policy_query;
|
|
23
|
+
use super::resolution::remap_query_order_by_after_kill_wrap;
|
|
23
24
|
use super::plan::{apply_select_rewrite_plan, plan_select_rewrite};
|
|
24
25
|
use super::types::{PassantRewriter, RewriteContext};
|
|
25
26
|
|
|
@@ -372,6 +373,7 @@ impl PassantRewriter {
|
|
|
372
373
|
return Ok(());
|
|
373
374
|
}
|
|
374
375
|
self.rewrite_set_expr(query.body.as_mut(), context)?;
|
|
376
|
+
remap_query_order_by_after_kill_wrap(query);
|
|
375
377
|
if context.sink.is_none() {
|
|
376
378
|
self.apply_query_relation_resolution(query, context)?;
|
|
377
379
|
}
|