Changelog¶
All notable changes to DecentDb will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]¶
Added¶
- SQL IN operator support
- Page utilization monitoring for B+Tree
- Full documentation site with MkDocs
- Additional performance benchmarks
- VARCHAR and CHARACTER VARYING as TEXT aliases (without length enforcement)
Changed¶
- Updated ROAD_TO_RTM.md with completion status
- Improved documentation organization
[0.0.1] - 2026-01-30¶
Added¶
- Initial beta release (pre-1.0)
- ACID transactions with WAL-based durability
- PostgreSQL-like SQL subset
- B+Tree storage with page cache
- Trigram inverted index for text search
- Single writer + multiple readers concurrency
- Snapshot isolation
- Foreign key constraints
- Bulk load API
- CLI with comprehensive commands
- Comprehensive test suite (unit, property, crash, differential)
- 7 performance benchmarks
- Full Nim API
- Cross-platform support (Linux, macOS, Windows)
SQL Support¶
- CREATE TABLE, CREATE INDEX, DROP TABLE, DROP INDEX
- SELECT, INSERT, UPDATE, DELETE
- WHERE, ORDER BY, LIMIT, OFFSET
- INNER JOIN, LEFT JOIN
- Aggregate functions: COUNT, SUM, AVG, MIN, MAX
- GROUP BY, HAVING
- Parameters: $1, $2, ...
- Data types: NULL, INT64, TEXT, BLOB, BOOL, FLOAT64
- Constraints: PRIMARY KEY, FOREIGN KEY, UNIQUE, NOT NULL
- Transactions: BEGIN, COMMIT, ROLLBACK
- LIKE, ILIKE pattern matching
Features¶
- B-Tree indexes (automatic for PK, FK)
- Trigram indexes for fast text search
- External merge sort for large ORDER BY
- Page utilization monitoring
- Configurable cache size
- Multiple durability modes
- Database integrity verification
- Import/export to CSV
Architecture¶
- Modular design (VFS, Pager, WAL, BTree, Storage, SQL, Planner, Exec)
- Comprehensive error handling
- Memory-safe Nim implementation
- Property-based testing
- Crash injection testing
- Differential testing vs PostgreSQL
Documentation¶
- README with quick start
- Full API reference
- SQL reference guide
- Architecture documentation
- Design documents (PRD, SPEC, ADRs)
- MkDocs-based documentation site
Performance¶
- Point lookups: P95 < 10ms
- FK joins: P95 < 100ms
- Text search: P95 < 200ms
- Bulk load: 100k records < 20s
Known Limitations¶
As of version 0.0.1:
- Single writer only - No concurrent write transactions
- Single process - No multi-process access
- No subqueries - In SELECT list
- No window functions - ROW_NUMBER, RANK, etc.
- No CTEs - Common Table Expressions (WITH)
- No views - Virtual tables not supported
- No stored procedures - Server-side logic
- Statement-time FK checks - Not deferred to COMMIT
- No full-text search - Only trigram indexes
- No replication - Single node only
- No encryption - Data at rest not encrypted
Future Roadmap¶
Version 1.0.0 (Planned)¶
- Feature-complete engine and CLI
- More robust unit tests (plus crash/differential coverage where appropriate)
- Benchmarks meet release targets
- API stability guarantees begin (Semantic Versioning)
Version 1.1 (Planned)¶
- Subquery support
- Additional SQL functions
- Query plan caching
- Improved error messages
Version 1.2 (Planned)¶
- SAVEPOINT for nested transactions
- More indexing options
Version 2.0 (Future)¶
- Multi-process concurrency
- Replication support
- Query optimizer improvements
- Full-text search with ranking
Release Notes Archive¶
For detailed release notes of each version, see GitHub Releases.
Contributing to Changelog¶
When making changes: 1. Add entry under [Unreleased] 2. Categorize as Added, Changed, Deprecated, Removed, Fixed, or Security 3. Reference issue/PR numbers when applicable 4. Move to version section on release