optd-sqlplannertest 0.1.1

sqlplannertest for optd
Documentation
# Usage

## Update the test cases

```shell
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

```shell
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
```