I am building a OLAP Database from scratch in Rust based on the following tutorial (safari or google translate does the trick really well for me) from RisingWave labs.
The goal of this project is to understand and implement the main components of a database system by doing simple implementations of each. Main components to be developed will be:
- Parser: We are mostly going to rely on sqlparser crate to do sql syntax validation and get the AST.
- Executor
- Catalog: implement a catalog data structure covering database, schema, table and columns. It was glad to learn how concurrency plays a big role on the design and implementation of this structure.
- Planner
- In memory storage