Skip to content

sqlite-c v0.1.0

Pre-release
Pre-release

Choose a tag to compare

@MugdhoAI MugdhoAI released this 23 Oct 17:58
· 1 commit to main since this release
9f02b59

Overview

Initial release of sqlite-c, a small SQLite inspired relational database engine built from scratch in C11.

Features

  • Persistent storage using fixed size 4096 byte pages
  • B tree table storage with leaf splitting and an internal root
  • SQL INSERT and SELECT, including WHERE id = ...
  • Interactive command line shell
  • Database metadata and B tree structure validation on open
  • Automated tests, strict compiler warnings, and AddressSanitizer and UndefinedBehaviorSanitizer checks
  • A 1,000 row insertion benchmark

Build and run

Requirements: a C11 compatible compiler and GNU Make.

make
./build/sqlite-c

Run the test suite with make test and the benchmark with make benchmark.

Scope and limitations

This is an educational database engine, not a production database or a drop in replacement for SQLite. Its database file format is project specific and is not compatible with SQLite database files. The SQL grammar and storage capacity are limited, and deeper B tree internal node splitting is not implemented.

See the README for architecture, supported commands, testing details, and known limitations.

Verification

The main commit targeted by this release passed the repository's configured GitHub Actions checks, including tests, strict warning compilation, the benchmark smoke test, AddressSanitizer, and UndefinedBehaviorSanitizer.