Changelog

Release announcements and project updates. For planned work, see the roadmap.

Release May 2026

v3.8.0 — Native Table Archives & External Tables

Adds a real table-archive and external-table workflow: native .csdbtable files, fast snapshot exports, Admin Import / Export tooling, and read-only SQL access to archived tables:

  • Native table archives — New CSharpDB.ImportExport project with native .csdbtable schema, manifest, row stream, BLOB/null/type metadata, and optional integer primary-key index sections.
  • Fast snapshot exports — Embedded client transport can export directly from a reader snapshot instead of paging through the UI, with progress callbacks and cancellation support for large tables.
  • Admin Import / Export — New Admin project area with export, register external table, restore table, one-time download endpoint, server-path exports, progress UI, cancellation, and Object Explorer access from both Tools and table context menus.
  • External table SQL — Added CREATE EXTERNAL TABLE ... FROM 'path.csdbtable' and DROP EXTERNAL TABLE, plus sys.external_tables metadata and relative-path resolution from the database folder.
  • Query planner integration — Registered archives are resolved as read-only table sources through ExternalTableScanOperator, can participate in normal SELECT queries and joins, use metadata fast paths for COUNT(*), and use embedded primary-key indexes for eligible point lookups.
  • Read-only safety — Writes, schema mutation, index creation, and trigger target usage against external tables are rejected with clear errors.
  • Changelog and blog docs — Added a table archives blog post and ignored generated *.csdbtable files so local exports do not become source artifacts.
Release May 2026

v3.7.0 — Planner Observability, Adaptive Reoptimization & View Paging

Completes the optimizer and async I/O close-out work, exposes planner diagnostics publicly, and fixes the view/query paths found during the customer-filtered fulfillment investigation:

  • Planner diagnostics — Added EXPLAIN ESTIMATE FOR SELECT coverage for select, WITH, and compound queries, plus sys.planner_* virtual catalogs for histograms, heavy hitters, and composite index prefix statistics.
  • Admin plan visibility — Query tabs can run estimates and show planner output in the Plan tab so users can inspect row estimates and plan choices without leaving Admin.
  • Opt-in adaptive reoptimization — New DatabaseOptions, embedded ADO.NET connection-string support, diagnostics, and fail-closed handling let eligible join plans correct bad cardinality assumptions before rows are emitted.
  • View/query fixes — Paged view browsing now issues bounded LIMIT/OFFSET SQL, simple view row-goal planning can reorder eligible join chains, and Query tab grids preserve scroll/pager layout.
  • Lookup join and result metadata polish — Improved indexed local predicate planning, residual right-side filters, index scan capacity hints, and SQL ColumnTypes propagation through engine, API, client, and Admin surfaces.
  • Benchmarks and DataGen — Closed the current generated collection fast-path and DataGen direct-load phase, refreshed release benchmark scorecards, added optimizer/async I/O close-out suites, and added a WAL point-read benchmark with latency-column guardrail support.
Release May 2026

v3.6.0 — Trusted C# Callbacks, Built-In Functions & Admin Automation

Adds trusted in-process C# callbacks across SQL, formulas, procedures, forms, reports, and pipeline surfaces, then rounds the feature out with tableless scalar SQL, built-ins, and Admin discovery:

  • Trusted scalar functions and commands — Host applications can register scalar functions through DbFunctionRegistry and commands through DbCommandRegistry, including async command support, timeouts, and shared argument conversion.
  • Automation surfaces — Admin Forms now support lifecycle events, selected-control events, command buttons, reusable action sequences, built-in record actions, conditional action steps, and generated automation metadata. Reports and pipelines gained trusted command hooks.
  • Tableless scalar SQL — Added SELECT without FROM using a single-row planner source for scalar expressions and callbacks that do not need row context.
  • Built-in scalar functions — Added common Access-style text, date/time, numeric, conversion, and null helpers for SQL and Admin formula use.
  • Callback catalog polish — Added callback metadata including CanRunWithoutFrom, SQL editor autocomplete for built-ins and tableless-safe callbacks, and an Internal/External split in the Admin callback catalog.
  • Release validation — Final tableless/callback stabilization passed with 1,877 tests, plus build, pack, daemon publish, and callback benchmark validation.
Release April 2026

v3.5.0 — Generated Collection Payload Fast Path & Studio Mockups

Completes the opt-in generated collection binary payload fast path, refreshes release benchmark artifacts, and adds confirmed CSharpDB Studio Admin mockup documentation:

  • Generated collection binary payloads — Source-generated collection models now encode/decode fixed field order, compact type/null metadata, and raw values while non-generated collection paths keep their existing JSON and binary behavior.
  • Direct payload decode improvements — Avoids duplicated direct payload header parsing, adds single-segment ReadOnlySpan<byte> top-level field lookups, and improves targeted UTF-8 span plumbing for text index/read/compare paths.
  • Collection benchmark coverage — Added generated collection codec benchmarks and expanded binary codec/generator tests. Focused investigation showed material gains in direct payload decode, field reads, field compares, and path-index lookups.
  • Release-core refresh — Refreshed benchmark README/history from the April 26 release-core artifacts; final guardrail compare passed with PASS=185, WARN=0, SKIP=0, FAIL=0.
  • Admin UI planning — Added CSharpDB Studio access-parity notes and static Admin UI mockups under www/admin-ui-mockups.
Release April 2026

v3.4.0 — Admin Runtime, Fulfillment Hub Sample & Docs Polish

Focuses on making CSharpDB easier to explore locally: a richer Admin experience, a complete Fulfillment Hub sample database, a run-only forms web host, and clearer docs for launching and learning from the project:

  • Fulfillment Hub sample — New end-to-end sample that seeds a working database with tables, views, stored procedures, forms, reports, pipelines, collections, and full-text search data. The walkthrough shows how to generate the database and open it through CSharpDB Admin.
  • Admin query workflow polish — Query autocomplete now handles LIMIT, UPDATE ... SET, WHERE column suggestions, and INSERT INTO ... columns ... VALUES flow more reliably.
  • Designer usability fixes — Form designer property fields now respect the current light/dark theme, and Query Designer views include resizable split bars so long SQL previews and result grids can be adjusted without losing context.
  • Forms-only web host — Added a run-only Forms Web project path for displaying saved forms from a CSharpDB database without exposing design mode. Static assets, shared styling, and the themed home screen now load correctly when started through the provided script.
  • Local Admin launcher guidance — New blog documentation explains how to create a small C# launcher executable that starts CSharpDB.Admin.exe, waits for the ASP.NET Core endpoint, and opens the default browser.
  • Website documentation polish — Added the Fulfillment Hub sample blog post, improved tutorial code color-coding across the static docs pages, refreshed release/PR notes, and kept the sitemap/blog index aligned with the new content.
Release April 2026

v3.3.0 — Durable Write Performance & Embedded Storage Tuning

Focused on durable write throughput, a new storage-tuning surface for embedded users, and release-stable benchmark publishing. Promoted from the April 21, 2026 release-core run after a clean guardrail compare (PASS=185, WARN=0, SKIP=0, FAIL=0):

  • Append-optimized indexed insert paths — Append-optimized row-id chains and hashed index payloads, overflow-store improvements, hot right-edge recovery, and expanded commit-path diagnostics. Promoted InsertBatch B10000 durable ingest lands at 798.25K rows/sec — 1.48× the matched SQLite WAL+FULL baseline on the same runner.
  • Trailing-integer composite grouped aggregates — The planner can now route grouped aggregates through a composite index when the grouping key prefixes the index and the trailing column is an integer.
  • SQL index metadata defaults — Multi-column indexes no longer receive trailing-integer hash options unless explicitly requested. Existing serialized options continue to resolve through the legacy compatibility path.
  • Embedded storage tuning for ADO.NET and EF Core — New Storage Preset= and Embedded Open Mode= connection-string keywords on CSharpDb.Data, matching CSharpDbConnection.DirectDatabaseOptions / HybridDatabaseOptions, and EF Core UseStoragePreset() / UseEmbeddedOpenMode(). Ships with five presets (WriteOptimized, LowLatencyDurableWrite, DirectLookupOptimized, DirectColdFileLookup, HybridFileCache) and three open modes (Direct, HybridIncrementalDurable, HybridSnapshot).
  • Same-runner SQLite comparison coverage — New SQLite C API, concurrent SQLite, concurrent ADO.NET, strict insert, and EF Core comparison harnesses. --sqlite-compare, --concurrent-sqlite-capi-compare, --concurrent-adonet-compare, and --efcore-compare commands; promoted comparison rows in tests/CSharpDB.Benchmarks/SQLITE_COMPARISON.md.
  • Release-stable benchmark publishing — Balanced --release-core suite (master, durable batching, concurrent writes, hybrid storage, hot-set reads, cold open, SQLite comparison), manifest-driven README generator, row-specific guardrail tolerances, and separate catalog/history/SQLite comparison files.
  • Refreshed package READMEs and website — Root README performance numbers updated (1.67M collection gets/sec, 10.77M concurrent reader-burst reads/sec, 798.25K durable InsertBatch B10000 rows/sec, 1.04K concurrent durable commits/sec); package READMEs refreshed for Admin, Forms, Reports, CLI, MCP, Native, API, Data, Engine, EF Core, and the aggregate package surface.
Release April 2026

v3.2.0 — Entity Framework Core 10 Provider & Scalar Aggregate Optimization

Adds the first embedded EF Core provider, supporting planner/parser work, and a focused scalar aggregate optimization pass:

  • CSharpDB.EntityFrameworkCore (v1) — First embedded EF Core 10 provider layered over CSharpDB.Data. Adds UseCSharpDb(...) configuration, design-time services, migrations/history/lock plumbing, relational connection services, SQL generation, type mapping, update batching, and database creation. Packaged and published alongside the existing NuGet set; runnable example at samples/efcore-provider.
  • Parser and planner support for EF-emitted shapes — Extended tokenizer, parser, query planner, and result handling plus ADO.NET command/parameter plumbing so the provider can execute the required EF query and command shapes cleanly.
  • Scalar aggregate lookup optimization — Simple indexed and primary-key-backed COUNT(...) and SUM(...) cases now reuse lightweight lookup plans instead of materializing full scans. Focused baseline refresh checked in at tests/CSharpDB.Benchmarks/baselines/focused-validation/20260418-185724.
  • Benchmark guardrail stabilization — Scenario selection, durable SQL batching coverage, and guardrail scripting hardened for repeat runs. Internal cleanup removed the unused FlushBufferedWritesAsync method from IWalFlushPolicy to align with the current commit/flush contract.
  • New docs — the EF Core provider guide, ADO.NET / EF storage tuning guide, and a benchmark-driven CSharpDB-versus-SQLite guide.
Release April 2026

v3.1.0 — Concurrent Writers, Daemon Hybrid Defaults & Bulk Ingest Samples

Extends the initial phase-1 multi-writer work with richer transaction handling, commit-path optimization, transport integration, and new user-facing samples:

  • Concurrent insert execution (opt-in) — New ImplicitInsertExecutionMode.ConcurrentWriteTransactions routes shared auto-commit inserts through isolated WriteTransaction state for disjoint-key workloads. Richer explicit WriteTransaction handling with logical conflict tracking, disjunctive and range predicate validation, and insert-side rebase/split recovery.
  • Durable write fan-in (phase 3/4) — Snapshot checkpoint retention tuning and shared auto-commit fan-in on top of the phase-1 multi-writer base. Split-aware conflict handling and leaf/interior rebase hardening reduce insert-path retry tails under concurrency. New insert fan-in and commit-path diagnostics.
  • Commit-path optimizations — Insert commit allocation hot paths, single-insert commit cost, collection secondary-index maintenance, and reader-session COUNT(*) all received focused optimization. WAL publication and flush staging were split into explicit stages with dedicated diagnostics and refreshed baselines.
  • ADO.NET through Client and hybrid daemon defaults — The ADO.NET provider now routes through CSharpDB.Client for remote sessions, and the daemon host defaults moved to the newer hybrid multi-writer hosting model.
  • Samples and tutorials — New Atlas Platform Showcase sample (schema, workbook queries, procedures, and reports), an API-first CSV bulk import sample and tutorial, and a multi-writer follow-up planning document linked from the roadmap.
Release April 2026

v3.0.0 — Source-Generated Collections & Performance Recovery

Source-generated collection models are now part of the engine, with a trim-safe generated collection API and focused write-path performance recovery:

  • CSharpDB.Generators — No-reflection, trim-safe typed collection API via GetGeneratedCollectionAsync<T>() and GeneratedCollection<T>
  • Generated field metadata — Analyzer-packaged collection models, codecs, and field descriptors with NativeAOT-friendly model registration
  • Collection write-path recovery — Separated write probes from read-side B-tree routing-cache, reused traversal scratch during insert/replace, and buffered catalog mutation bookkeeping
  • Covered composite-index fast-path — Recovered covered composite-index lookup optimization for index-only queries
Release March 2026

v2.9.0 — Cost-Based Optimizer, Multi-Writer & CLI Refresh

A broad release carrying phase-2 planner statistics, durable-write batching, initial multi-writer support, and a richer CLI experience:

  • Phase-2 planner statistics — Internal histograms, heavy hitters, composite-prefix summaries, and bounded DP join reordering for richer selectivity and cardinality estimates
  • Durable group commit — Opt-in UseDurableCommitBatchWindow(...) batches durable WAL flushes across contending writers
  • Initial multi-writer support — Explicit WriteTransaction with conflict-detected retry, shared auto-commit non-insert isolation, and opt-in concurrent implicit inserts
  • Async I/O batching — WAL frame-chunk writes, chunked checkpoint copies, and reusable B-tree copy utilities
  • CLI refresh — Spectre.Console-based output, richer tables, interactive . dot-command menu, and branded ASCII startup banner
  • New docs — Configuration reference, query execution pipeline walkthrough, expanded SQL reference
Release March 2026

v2.8.0 — Batch-First SQL Row Transport

The SQL execution engine now uses a batch-first row transport foundation. This is a significant internal architecture change that enables more efficient query processing:

  • Batch-capable result boundaries across scans, joins, and aggregates
  • Foundation for future vectorized query execution
  • Reduced per-row overhead for large result sets
Release March 2026

Full-Text Search

CSharpDB now includes built-in full-text search capabilities:

  • Inverted index with tokenization and stemming
  • Relevance ranking via MATCH() in SQL
  • CREATE FULLTEXT INDEX syntax for easy setup
Release February 2026

Foreign Key Constraints

v1 foreign key support has landed with column-level REFERENCES and optional ON DELETE CASCADE:

  • Single-column, column-level REFERENCES syntax
  • ON DELETE CASCADE for automatic child row cleanup
  • Metadata and tooling surfaces across direct, HTTP, gRPC, CLI, and Admin
  • Retrofit migration for older databases
Release January 2026

Subqueries, Set Operations & Visual Query Designer

Major SQL feature additions and tooling improvements:

  • Scalar subqueries, IN/EXISTS (including correlated) subqueries
  • UNION, INTERSECT, EXCEPT set operations
  • Visual query builder in Admin UI with drag-and-drop source canvas, join editing, and SQL preview
  • Collation support (BINARY, NOCASE, NOCASE_AI, ICU:<locale>)
Release Q4 2025

Ecosystem Expansion

Major tooling and ecosystem additions that shipped in late 2025:

  • Dedicated gRPC daemon — Full gRPC coverage for SQL, schema, procedures, collections, and maintenance
  • Hybrid storage mode — Hot tables in memory with durable checkpoint to disk
  • Client backup & restore — First-class operations across all access methods
  • Background WAL checkpointing — Incremental auto-checkpointing off the commit path
  • MCP server — AI assistant integration for database operations
  • NativeAOT C library — Cross-language FFI for JavaScript, Python, and more