Jiang Zhe
Jiang Zhe
As draft version of join reorder algorithm is done, the plan module should work with fake cost model and cardinality estimations. To implement the estimator and cost model, the underlying...
As mentioned [here](https://wp.sigmod.org/?p=1075), cardinality estimation is crucial for cost based optimization.
```sql SELECT c1 FROM t1 LEFT JOIN t2 ON t1.c1 = t2.c2 WHERE t2.c2 IS NULL ``` Above SQL uses LeftJoin to achieve the AntiJoin Semantics. We remove the WHERE...
Similar to CNF expressions, we have to handle: 1. Constant folding. 2. Remove redundant operands. 3. Combine comparisons.
This rule does not support unfold derived table as inner side of outer join if the output contains expressions other than columns. The reason is that outer join may change...
The project [join-order-benchmark](https://github.com/gregrahn/join-order-benchmark) looks promising with paper "How Good Are Query Optimizers, Really?" describing its goal and methodology. Try porting to Rust. Initial step is to include schemas and queries....
Visualize the query plan as a graph helps a lot when understanding and debugging the optimization plan with many rules to apply. [petgraph](https://crates.io/crates/petgraph) is preferred. A minimal web console is...