Download Latest Version v0.2.4 source code.tar.gz (1.7 MB)
Email in envelope

Get an email when there's a new version of Stoolap

Home / v0.2.1
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2026-01-07 1.6 kB
v0.2.1 source code.tar.gz 2026-01-07 1.6 MB
v0.2.1 source code.zip 2026-01-07 1.9 MB
Totals: 3 Items   3.5 MB 0

What's New in v0.2.1

AS OF Temporal Queries in JOINs

  • Support for AS OF TIMESTAMP and AS OF TRANSACTION in JOIN clauses
  • Compare current vs historical data in a single query:

    :::sql SELECT c.price AS current_price, h.price AS old_price FROM products c JOIN products AS OF TIMESTAMP '2024-01-01' h ON c.id = h.id WHERE c.price != h.price;

Performance Optimizations

Memory & Allocation Improvements: - Arc-based Row storage with three-tier optimization (Inline/Owned/Shared) - HashMap pooling in VersionStore (~99% allocation reduction for bulk inserts) - Arena slot reuse to prevent unbounded growth on updates - SmallVec for aggregation states and function args

AST Optimizations: - CompactString for inline storage (≤24 bytes avoids heap allocation) - Box large enum variants reducing Expression size from ~400 to ~64 bytes - Pre-computed lowercase fields instead of runtime conversion

Query Execution: - Optimized hash joins with cached NULL rows - TopNResult with pre-extracted sort keys for O(1) comparisons - raw_entry_mut API in GROUP BY (avoids key cloning)

Bug Fixes

  • Fix INNER JOIN returning 0 rows with parameters (#4) Thanks to @nhansiromeo
  • Fix SubquerySource filter application
  • Proper resource cleanup with Drop impl for Database

Other Changes

  • Add DuckDB benchmark with optional feature flags
  • Version info now uses Cargo.toml as single source of truth
  • Improved README with feature comparison tables

Full Changelog: https://github.com/stoolap/stoolap/compare/v0.2.0...v0.2.1

Source: README.md, updated 2026-01-07