2 unstable releases
new 0.1.1 | Nov 8, 2024 |
---|---|
0.0.0 | Feb 25, 2024 |
#5 in #optimizer
595KB
13K
SLoC
Usage
Update the test cases
cargo run -p optd-sqlplannertest --bin planner_test_apply
# or, supply a list of directories to scan from
cargo run -p optd-sqlplannertest --bin planner_test_apply -- subqueries
Verify the test cases
cargo test -p optd-sqlplannertest
# or use nextest
cargo nextest run -p optd-sqlplannertest
Tasks
The explain
and execute
task will be run with datafusion's logical optimizer disabled. Each task has some toggleable flags to control its behavior.
execute
Task
Flags
Name | Description |
---|---|
use_df_logical | Enable Datafusion's logical optimizer |
Explain Task
Flags
Name | Description |
---|---|
use_df_logical | Enable Datafusion's logical optimizer |
verbose | Display estimated cost in physical plan |
logical_rules | Only enable these logical rules (also disable heuristic optimizer) |
Currently we have the following options for the explain task:
logical_datafusion
: datafusion's logical plan.logical_optd
: optd's logical plan before optimization.optimized_logical_optd
: optd's logical plan after heuristics optimization and before cascades optimization.physical_optd
: optd's physical plan after optimization.physical_datafusion
: datafusion's physical plan.join_orders
: physical join orders.logical_join_orders
: logical join orders.
Tracing a query
RUST_BACKTRACE=1 RUST_LOG=optd_core=trace,optd_datafusion_bridge=trace cargo run -p optd-sqlplannertest --bin planner_test_apply -- pushdowns &> log
Dependencies
~86MB
~1.5M SLoC