Build a SQL optimizer in 1000 lines of Rust using egg.
🚧 Under construction 🚧 Stay tuned 👀
For explanation of implementation, please refer src/README.md.
For tutorials (in Chinese), please refer 欢度元旦,用蛋写个 SQL 优化器吧(上) and 欢度元宵,用蛋写个 SQL 优化器吧! .
Fill the code in src and pass the tests in tests!
cargo test --test 1_language
cargo test --test 2_rewrite
cargo test --test 3_conditional_rewrite
cargo test --test 4_constant_folding
cargo test --test 5_sql_plan
cargo test --test 6_plan_elimination
cargo test --test 7_predicate_pushdown
cargo test --test 8_projection_pushdown
cargo test --test 9_agg_extraction
cargo test --test 10_index_resolvingThese labs are taken from the RisingLight project. Check out how it works in a real database system!