Skip to content

Latest commit

 

History

History
214 lines (172 loc) · 12.4 KB

File metadata and controls

214 lines (172 loc) · 12.4 KB

Changelog

All notable changes to NexumDB will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Notes

  • Transaction WAL currently uses a full scan_all() snapshot on BEGIN as an MVP implementation. A follow-up is planned to replace this with an incremental per-mutation undo/redo log for better scalability.
  • Transaction isolation is currently a single-active-transaction model per Executor and does not implement MVCC across multiple sessions yet.

0.6.0 (2026-02-06)

Features

  • align templates and README with OSCG'26 guidelines (79bb239)
  • enhance PR review automation with comprehensive workflows (ad3fda1)

Bug Fixes

  • correct Release Please conditional syntax to single line (d1382ba)
  • release only on direct pushes, not PR merges (8d4ab16)

0.5.0 (2026-02-06)

Features

  • add comprehensive OSS automation and community features (cf22f4b)
  • Add DELETE statement support (17974b8), closes #45
  • Add DELETE statement support with WHERE clause filtering (44bedae)
  • Add UPDATE statement support (922afce)
  • Add UPDATE statement support (96921be), closes #46
  • add UPDATE/DELETE support with cache invalidation (v0.4.0) (777421c)
  • Added .editorconfig for consistent formatting (d659d8c)
  • Added docker-compose.yml file (c4a7b20)
  • App dockerization (149d801)
  • build and release docker image (c09f564)
  • Cached Python deps in CI (603cafa)
  • Committed Cargo.lock for reproducible builds (db4311e)
  • complete OSS infrastructure setup (626d622)
  • Implement semantic cache persistence to disk (#47) (0179452)
  • implement semantic cache persistence to disk (issue #47) (78e2a4e)

Bug Fixes

  • Add boolean value assertion in test_parse_update_without_where (be4e731)
  • add defensive field width limits and improve explain_action docstrings (763493e)
  • Address CodeRabbit feedback (d596cb0)
  • Address CodeRabbit nitpicks (19543f2)
  • Address CodeRabbit review feedback (a208673)
  • address CodeRabbit security concerns - Replace unsafe pickle.load() with JSON as default format - Add RestrictedUnpickler for legacy pickle files - Auto-convert legacy pickle caches to JSON on load - Add test cache files to .gitignore (9d37b98)
  • Apply cargo fmt formatting and improve UPDATE atomicity (cbd62fc)
  • cargo-audit installation issue in workflow (16fd851)
  • cashing issue (af501a3)
  • cashing problem (d9fbf58)
  • ci: correct YAML syntax in Python workflow job (ccf5a6c)
  • ci: remove broken requirements-lock.txt dependency installation (1b8edce)
  • final release-please workspace fix (remove workflow-level type override) (ecb67d7)
  • fixed suggested changes (dd83131)
  • Handle serialization errors properly in batch UPDATE (5a13d99)
  • Implement two-phase deletion to prevent partial deletion risk (f184562)
  • reduce test iterations to prevent CI timeout (5fe7919)
  • remove auto-save from put() to prevent test hanging (3b109c6)
  • remove unused io import (01effa3)
  • remove unused mut from with_cache function (4507d2f)
  • replace deprecated PyO3 import_bound with import (f60c483)
  • Resolve merge conflicts in SQL module files (ead1cf0)
  • resolve Rust formatting issues in benchmark files (f2f6cf4)
  • setup release-please for subpackage to bypass workspace parsing issue (988281d)
  • suggested but coherant changes (d1b9f1a)
  • switch release-please to simple release-type for workspace support (e23dd8a)
  • update bytes to 1.11.1 and improve DCO workflow (a2374fe)
  • update release-please config for cargo workspace (1bceda8)
  • upgraded pyo3 from version 0.22 to version 0.24.1 (67d5a47)

Reverts

  • restore original test iterations (ea703bd)

0.4.0 - 2026-02-03

Added

  • Projection-aware SELECT with alias support
  • SHOW TABLES, DESCRIBE, and DROP TABLE (IF EXISTS)
  • Best-effort coercion for INSERT/UPDATE with schema validation
  • Full cache invalidation on data writes
  • Catalog persistence test coverage

Changed

  • StorageEngine clone now shares underlying sled database
  • Semantic cache keys now include projection, WHERE, ORDER BY, LIMIT

Tests

  • Added projection, coercion, and table management coverage
  • Extended integration tests for table lifecycle

0.3.0 - 2025-11-26

Added

  • Advanced SQL operators
    • LIKE operator for pattern matching (supports % and _ wildcards)
    • IN operator for list membership testing
    • BETWEEN operator for inclusive range queries
  • Query modifiers
    • ORDER BY clause with multi-column sorting (ASC/DESC)
    • LIMIT clause for result truncation
  • Persistent RL agent
    • save_state() and load_state() methods using joblib
    • Auto-load Q-table on agent initialization
    • Learning persists across database restarts
  • Model management system
    • ModelManager class for automatic LLM downloads
    • HuggingFace Hub integration
    • Automatic download of phi-2.Q4_K_M.gguf model
    • Graceful fallback to rule-based translation
  • 6 new unit tests for advanced operators
  • 3 new integration tests for combined features

Changed

  • Updated Statement::Select to include order_by and limit fields
  • Extended ExpressionEvaluator with LIKE, IN, BETWEEN support
  • Modified NLTranslator to use ModelManager
  • Enhanced parser to handle ORDER BY and LIMIT clauses
  • Executor now performs sorting and limiting operations

Dependencies

  • Added: regex = "1.10" (Rust)
  • Added: huggingface-hub>=0.20.0 (Python)

Performance

  • LIKE: ~100µs overhead per query
  • IN (5 items): ~50µs overhead
  • BETWEEN: ~40µs overhead
  • ORDER BY (1000 rows): ~2ms
  • LIMIT: ~1µs overhead
  • RL save/load: ~5ms/~3ms

Tests

  • 21 tests passing (was 18)
  • Zero regressions
  • All existing functionality preserved

0.2.0 - 2025-11-25

Added

  • WHERE clause filtering with full expression evaluation
    • Comparison operators: =, >, <, >=, <=, !=
    • Logical operators: AND, OR
    • Support for Integer, Float, Text, Boolean types
  • Natural Language Query interface (ASK command)
    • NLTranslator class with llama-cpp-python support
    • Fallback rule-based translator
    • Schema-aware translation
  • Reinforcement Learning query optimizer
    • Q-Learning agent with state/action/reward
    • Epsilon-greedy exploration
    • Automatic learning from query performance
  • ExpressionEvaluator for WHERE clause evaluation
  • NLTranslator PyO3 bridge integration
  • Schema introspection for NL context
  • 3 new integration tests for WHERE filtering
  • CLI ASK command mode

Changed

  • Updated CLI to v0.2.0 with enhanced command modes
  • Extended Python AI engine with translator and RL agent
  • Improved PyO3 bridge with NLTranslator export
  • Enhanced README with v0.2.0 features

Fixed

  • Parser now correctly handles WHERE clause expressions
  • Fixed unused variable warnings in executor

Dependencies

  • Added: llama-cpp-python>=0.2.0
  • Added: diskcache (via llama-cpp-python)

Tests

  • 15 unit tests passing (was 11)
  • 3 integration tests passing (new)
  • Total: 18/18 tests passing

0.1.0 - 2025-11-25

Added

  • Initial release with core SQL database functionality
  • Storage engine using sled
  • SQL parser for CREATE TABLE, INSERT, SELECT
  • Query executor with end-to-end workflow
  • Catalog for table metadata management
  • Semantic caching using sentence-transformers
  • PyO3 Rust-Python integration
  • CLI REPL interface
  • 11 comprehensive unit tests

Features

  • Persistent KV storage
  • SQL query execution
  • AI-powered semantic caching
  • 60x query speedup on cache hits
  • Local-only execution (no cloud dependencies)