A from-scratch reimplementation of a SQL query engine in Rust with a defined and user facing pipeline.
This is a learning and exploration project, not a production database. The goal is to build each stage of a real query-processing pipeline (tokenizer → AST → logical plan → row-iterator execution → storage) and understand how the pieces fit together.
- Crate scaffold and error-handling architecture
-
types:Value,Row,DataType -
catalog: table/column schema registration and lookup -
lexer: full tokeniser with keywords, identifiers, numeric/string literals, punctuation, and--comments -
parser: recursive-descent parser producingStatements with a full expression parser: logical (OR/AND/NOT), comparison, and arithmetic (with correct precedence, left-associativity, unary minus, and parenthesization) -
analyzer: bind statements against theCatalog -
executor: run bound statements against in-memory storage
See ARCHITECTURE.md for the pipeline design and the reasoning behind the module boundaries and error-handling approach. It also lists known gaps
cargo build
cargo test
cargo runSee Changelog.
MIT, see LICENSE.