Skip to content

v2.16.0 - #58

Merged
sphildreth merged 5 commits into
mainfrom
sph.2026-06-30.01
Jul 1, 2026
Merged

v2.16.0#58
sphildreth merged 5 commits into
mainfrom
sph.2026-06-30.01

Conversation

@sphildreth

Copy link
Copy Markdown
Owner

Added

  • Added BOOLEAN support to the C ABI typed batch signature, including the
    documented ADR 0201 compatibility decision and refreshed public C headers for
    downstream bindings.
  • Added .NET ADO.NET batch/prepared-statement performance coverage, including
    typed batch tests, ADO.NET microbenchmarks, CRM comparison benchmarks,
    benchmark matrix scripts, and a GitHub workflow for CRM benchmark runs.
  • Added the design/2026-06-30_PERF_PLAN.md implementation plan covering the
    completed binding and DML performance work.

Changed

  • Improved .NET ADO.NET command, connection, and data-reader hot paths with
    prepared-statement reuse, typed batch execution, cached result metadata, and
    expanded API documentation.
  • Optimized DML execution for boolean updates and benchmark-shaped prepared
    write paths while preserving index maintenance and transaction semantics.
  • Expanded CRM and benchmark documentation with allocation telemetry, matrix
    comparison output, and updated benchmark result artifacts.

Fixed

  • Fixed prepared B-tree index handling to resolve index column names with normal
    SQL identifier case-insensitivity, matching SQLite-compatible quoted-column
    behavior in .NET tests.
  • Fixed paged-row append persistence so modified chunk payloads invalidate stale
    persisted chunk metadata before locator caches and persistent primary-key
    locators are rebuilt.
  • Fixed deferred filtered COUNT(*) execution so filtered counts fall back to
    predicate-aware evaluation instead of returning total persisted row counts.

- Extend the `ddb_stmt_execute_batch_typed` function to accept a new
  signature character `b` for BOOLEAN values.
- BOOLEAN values are encoded in the existing `values_i64` array as
  0 for FALSE and non-zero for TRUE, maintaining compatibility with
  existing integer values.
- Update documentation to reflect the new signature grammar and
  ensure that existing functionality remains unchanged for current
  users of the API.
- Add validation requirements for testing the new BOOLEAN support
  in typed batches.
- Added `PreparedBoolUpdate` struct to handle boolean updates.
- Implemented `try_execute_paged_bool_update` and `try_execute_resident_bool_update` methods for executing boolean updates in paged and resident tables respectively.
- Enhanced `execute_update` method to support boolean updates.
- Created `compile_prepared_bool_update` function to prepare boolean update statements.
- Updated SQL explain functionality to include details for UPDATE statements.
- Added regression tests for boolean updates and their selectivity in the CRM dataset.
- Introduced ADO.NET microbenchmarks for performance measurement of prepared statements in DecentDB.
Copilot AI review requested due to automatic review settings July 1, 2026 13:06

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR bumps DecentDB to v2.16.0 and ships a binding- and performance-focused release: it extends the C ABI typed-batch signature to support BOOLEAN, adds substantial .NET ADO.NET hot-path improvements and new benchmark harnesses, and expands regression coverage around CRM-shaped DML/query behavior.

Changes:

  • Extend ddb_stmt_execute_batch_typed typed-batch signatures with 'b' (BOOLEAN encoded via values_i64) and refresh public/binding C headers + ADR.
  • Add/expand correctness + regression tests for prepared DML, filtered views, window functions, paged-row persistence, and CRM-shaped workloads.
  • Add .NET CRM comparison benchmark + ADO.NET microbenchmarks, plus a GitHub Actions workflow to gate CRM benchmark output.

Reviewed changes

Copilot reviewed 54 out of 64 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
VERSION Bump workspace version stamp to 2.16.0.
tests/bindings/dart/pubspec.lock Update Dart binding lockfile version pin to 2.16.0.
include/decentdb.h Document typed-batch 'b' BOOLEAN signature and encoding contract.
docs/user-guide/benchmarks.md Update benchmark page version stamp to 2.16.0.
docs/api/dotnet.md Expand/refresh .NET performance guidance and typed batch documentation.
docs/about/changelog.md Add 2.16.0 release entry (Added/Changed/Fixed).
design/FUTURE_WINS.md Update public release reference to 2.16.0 (planning bucket text needs alignment).
design/adr/README.md Add ADR 0201 to the “Recent ADRs” list.
design/adr/0201-c-abi-typed-batch-bool-signature.md New ADR documenting BOOLEAN typed-batch signature decision.
crates/decentdb/tests/sql_window_functions_tests.rs Add regression test ensuring shared window spec behavior.
crates/decentdb/tests/sql_transactions_prepared_tests.rs Strengthen EXPLAIN UPDATE assertions + add unsupported EXPLAIN ANALYZE UPDATE test.
crates/decentdb/tests/sql_crm_perf_regression_tests.rs New CRM-shaped correctness regression suite for perf work.
crates/decentdb/src/planner/mod.rs Expand filtered views and track pushed-filter state; add planner tests.
crates/decentdb/src/exec/tests.rs Add paged-table manifest rewrite + delete persistence tests.
crates/decentdb/src/exec/dml_unit_tests.rs Update DML test fixtures for generated column metadata field.
crates/decentdb/src/exec/dml_more_tests.rs Update DML test fixtures for generated column metadata field.
crates/decentdb/src/db/tests.rs Update prepared insert test fixture for generated column metadata field.
crates/decentdb/src/c_api.rs Implement 'b' BOOLEAN support in typed batch execution (via values_i64).
Cargo.toml Bump workspace package version to 2.16.0.
Cargo.lock Update crate versions to 2.16.0 in the lockfile.
bindings/python/pyproject.toml Bump Python package version to 2.16.0.
bindings/python/.tmp/bench_complex_results.json Updates benchmark output artifact (should not be committed).
bindings/node/knex-decentdb/package.json Bump Node knex client package version to 2.16.0.
bindings/node/knex-decentdb/package-lock.json Bump Node knex client lockfile package versions to 2.16.0.
bindings/node/decentdb/package.json Bump Node native addon package version to 2.16.0.
bindings/node/decentdb/package-lock.json Bump Node native addon lockfile package versions to 2.16.0.
bindings/java/driver/src/main/java/com/decentdb/jdbc/DecentDBDriver.java Bump JDBC driver version string to 2.16.0.
bindings/java/driver/build.gradle Bump Java driver Gradle version to 2.16.0.
bindings/java/dbeaver-extension/META-INF/MANIFEST.MF Bump DBeaver bundle version and referenced jar name to 2.16.0.
bindings/java/dbeaver-extension/build.gradle Bump DBeaver extension Gradle version to 2.16.0.
bindings/go/decentdb-go/decentdb.h Refresh Go binding header docs for typed-batch BOOLEAN signature.
bindings/dotnet/tests/DecentDB.Tests/BatchOperationTests.cs Add .NET prepared/typed-batch regression coverage (including BOOLEAN typed batches).
bindings/dotnet/src/DecentDB.Native/DecentDB.cs Add multi-row typed-batch API and extend one-row path to 3 TEXT values.
bindings/dotnet/src/DecentDB.AdoNet/README.md Add ADO.NET performance checklist and typed-batch usage guidance.
bindings/dotnet/src/DecentDB.AdoNet/DecentDBDataReader.cs Optimize reader hot paths (cached names/ordinals, max-one-row fast exit).
bindings/dotnet/src/DecentDB.AdoNet/DecentDBConnection.cs Add ExecutePreparedBatchTyped(...) ADO.NET wrapper API.
bindings/dotnet/src/DecentDB.AdoNet/DecentDBCommand.cs Add prepared-statement reuse optimizations and SQL-shape heuristics for hot paths.
bindings/dotnet/DecentDB.NET.sln Add benchmark projects to the .NET solution.
bindings/dotnet/benchmarks/DecentDB.CrmComparison/run-crm-benchmark.sh New helper script to run CRM comparison benchmark.
bindings/dotnet/benchmarks/DecentDB.CrmComparison/run-crm-benchmark-matrix.sh New matrix runner to execute canonical CRM benchmark modes + summarize.
bindings/dotnet/benchmarks/DecentDB.CrmComparison/README.md New documentation for CRM comparison benchmark harness.
bindings/dotnet/benchmarks/DecentDB.CrmComparison/DecentDB.CrmComparison.csproj New CRM comparison benchmark project.
bindings/dotnet/benchmarks/DecentDB.CrmComparison/compare-crm-benchmark.py New Python comparator/validator for CRM benchmark JSON outputs.
bindings/dotnet/benchmarks/DecentDB.Benchmarks/README.md Reference new benchmark suites.
bindings/dotnet/benchmarks/DecentDB.AdoNetMicrobenchmarks/README.md New microbenchmark suite documentation.
bindings/dotnet/benchmarks/DecentDB.AdoNetMicrobenchmarks/Program.cs New BenchmarkDotNet-based ADO.NET hot-path microbenchmarks.
bindings/dotnet/benchmarks/DecentDB.AdoNetMicrobenchmarks/DecentDB.AdoNetMicrobenchmarks.csproj New microbenchmark project file.
bindings/dart/native/decentdb.h Refresh Dart binding header docs for typed-batch BOOLEAN signature.
bindings/dart/flutter/pubspec.yaml Bump Flutter helper package version to 2.16.0.
bindings/dart/flutter/pubspec.lock Bump Flutter lockfile version pin to 2.16.0.
bindings/dart/flutter/ios/decentdb_flutter.podspec Bump iOS podspec version to 2.16.0.
bindings/dart/flutter/example/pubspec.yaml Bump Flutter example version to 2.16.0.
bindings/dart/flutter/example/pubspec.lock Bump Flutter example lockfile pins to 2.16.0.
bindings/dart/flutter/android/build.gradle Bump Android Gradle version to 2.16.0.
bindings/dart/examples/flutter_desktop/pubspec.lock Bump Dart desktop example lockfile pins to 2.16.0.
bindings/dart/examples/console/pubspec.lock Bump Dart console example lockfile pins to 2.16.0.
bindings/dart/examples/console_complex/pubspec.lock Bump Dart console_complex example lockfile pins to 2.16.0.
bindings/dart/dart/pubspec.yaml Bump core Dart FFI package version to 2.16.0.
benchmarks/rust-baseline/Cargo.lock Bump baseline benchmark lockfile DecentDB versions to 2.16.0.
.github/workflows/dotnet-crm-benchmark.yml New workflow to run CRM benchmark smoke/nightly/release modes and upload artifacts.
Files not reviewed (2)
  • bindings/node/decentdb/package-lock.json: Generated file
  • bindings/node/knex-decentdb/package-lock.json: Generated file

Comment on lines +14 to 18
"decentdb": 0.027341,
"decentdb_vs_sqlite": 4.99835466179159,
"direction": "lower_is_better",
"sqlite": 0.006733,
"sqlite": 0.00547,
"winner": "sqlite"
Comment thread design/FUTURE_WINS.md
Comment on lines 130 to +133
Future version values are planning buckets, not release commitments. The
current public release in this repository is `2.15.0`, and the current
current public release in this repository is `2.16.0`, and the current
planning release bucket in this repository is `2.15.0`. `vNext` means
the first release bucket after `2.15.0` only when scope is explicitly accepted.
the first release bucket after `2.16.0` only when scope is explicitly accepted.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in the latest commit — updated the planning release bucket from 2.15.0 to 2.16.0 to align with the current public release.

@sphildreth
sphildreth merged commit 1b7dc92 into main Jul 1, 2026
6 checks passed
@sphildreth
sphildreth deleted the sph.2026-06-30.01 branch July 1, 2026 13:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants