Skip to content

Latest commit

 

History

History
45 lines (33 loc) · 1.34 KB

File metadata and controls

45 lines (33 loc) · 1.34 KB

BasaltSQL

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.

Status

  • 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 producing Statements 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 the Catalog
  • executor: run bound statements against in-memory storage

Architecture

See ARCHITECTURE.md for the pipeline design and the reasoning behind the module boundaries and error-handling approach. It also lists known gaps

Getting started

cargo build
cargo test
cargo run

Changelog

See Changelog.

License

MIT, see LICENSE.