PR v2.16.1 - #59
Merged
Merged
Conversation
- Implemented a new method to handle CRM revenue raw aggregate queries in the engine runtime. - Enhanced query execution paths to include revenue aggregation from companies, users, and invoices. - Introduced helper functions for validating query structure and extracting data from covering indexes. - Improved performance by utilizing dense company-id accumulation and avoiding generic join/group execution. chore: update version numbers in documentation - Updated the current public release version to 2.16.1 in various documentation files. - Adjusted changelog to reflect changes made in version 2.16.1, including performance improvements and bug fixes. - Modified benchmark documentation to indicate the updated DecentDB version. fix: correct version in Dart pubspec.lock - Updated the Dart package version in pubspec.lock from 2.16.0 to 2.16.1.
There was a problem hiding this comment.
Pull request overview
This PR prepares the 2.16.1 release by adding CRM-benchmark-specific fast paths in the Rust execution engine/runtime (raw revenue aggregate read + revenue-summary insert materialization) and by updating version stamps across docs and language bindings.
Changes:
- Add specialized execution paths for CRM revenue aggregation queries and a materialized
INSERT ... SELECTrevenue summary path. - Improve DML filter index selection by adding single-column B-tree range matching and predicate-aware partial-index handling.
- Bump versions to
2.16.1across the workspace, docs, and bindings (Rust/Cargo, Python, Node, Java, Dart), plus update changelog/benchmark docs.
Reviewed changes
Copilot reviewed 20 out of 30 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
VERSION |
Bumps repo version stamp to 2.16.1. |
Cargo.toml |
Updates workspace package version to 2.16.1. |
Cargo.lock |
Updates crate versions to 2.16.1. |
crates/decentdb/src/exec/mod.rs |
Adds CRM revenue raw aggregate query fast path + helper matchers/extractors. |
crates/decentdb/src/exec/dml.rs |
Adds revenue-summary insert materialization + expands DML range/index matching. |
docs/about/changelog.md |
Adds 2.16.1 changelog entry. |
docs/user-guide/benchmarks.md |
Updates benchmark doc version stamp to 2.16.1. |
design/FUTURE_WINS.md |
Updates “current public release” text to 2.16.1. |
bindings/python/pyproject.toml |
Bumps Python package version to 2.16.1. |
bindings/python/.tmp/bench_complex_results.json |
Updates benchmark artifact contents/version stamp. |
bindings/node/decentdb/package.json |
Bumps Node native addon version to 2.16.1. |
bindings/node/decentdb/package-lock.json |
Aligns Node lockfile versions to 2.16.1. |
bindings/node/knex-decentdb/package.json |
Bumps Knex dialect wrapper version to 2.16.1. |
bindings/node/knex-decentdb/package-lock.json |
Aligns Knex wrapper lockfile versions to 2.16.1. |
bindings/java/driver/build.gradle |
Bumps JDBC driver version to 2.16.1. |
bindings/java/driver/src/main/java/com/decentdb/jdbc/DecentDBDriver.java |
Updates driver version constant to 2.16.1. |
bindings/java/dbeaver-extension/build.gradle |
Bumps DBeaver extension version to 2.16.1. |
bindings/java/dbeaver-extension/META-INF/MANIFEST.MF |
Updates bundle version + referenced JDBC jar name to 2.16.1. |
bindings/dart/dart/pubspec.yaml |
Bumps Dart package version to 2.16.1. |
bindings/dart/flutter/pubspec.yaml |
Bumps Flutter helper package version to 2.16.1. |
bindings/dart/flutter/pubspec.lock |
Aligns Flutter lockfile to 2.16.1. |
bindings/dart/flutter/ios/decentdb_flutter.podspec |
Bumps iOS podspec version to 2.16.1. |
bindings/dart/flutter/android/build.gradle |
Bumps Android gradle version to 2.16.1. |
bindings/dart/flutter/example/pubspec.yaml |
Bumps Flutter example version to 2.16.1. |
bindings/dart/flutter/example/pubspec.lock |
Aligns Flutter example lockfile to 2.16.1. |
bindings/dart/examples/flutter_desktop/pubspec.lock |
Aligns desktop example lockfile to 2.16.1. |
bindings/dart/examples/console/pubspec.lock |
Aligns console example lockfile to 2.16.1. |
bindings/dart/examples/console_complex/pubspec.lock |
Aligns console_complex example lockfile to 2.16.1. |
tests/bindings/dart/pubspec.lock |
Aligns Dart binding test lockfile to 2.16.1. |
benchmarks/rust-baseline/Cargo.lock |
Aligns baseline benchmark lockfile versions to 2.16.1. |
Files not reviewed (2)
- bindings/node/decentdb/package-lock.json: Generated file
- bindings/node/knex-decentdb/package-lock.json: Generated file
Comment on lines
+7061
to
+7078
| let mut user_counts = BTreeMap::new(); | ||
| let mut user_company_ids = BTreeMap::new(); | ||
| users_source.visit_int64_column_values(users_company_id_index, |row_id, company_id| { | ||
| if let Some(company_id) = company_id { | ||
| if company_ids.contains(&company_id) { | ||
| user_company_ids.insert(row_id, company_id); | ||
| } | ||
| } | ||
| Ok(()) | ||
| })?; | ||
| users_source.visit_int64_column_values(users_id_index, |row_id, user_id| { | ||
| if user_id.is_some() { | ||
| if let Some(company_id) = user_company_ids.get(&row_id).copied() { | ||
| *user_counts.entry(company_id).or_insert(0_i64) += 1; | ||
| } | ||
| } | ||
| Ok(()) | ||
| })?; |
Comment on lines
7866
to
7869
| return Ok(Some(IndexedFilterRowIds { | ||
| row_ids: compound_btree_range_row_ids( | ||
| keys, | ||
| &prefix_values, | ||
| prefix_values.len(), | ||
| range_column.column_type, | ||
| lower.as_ref(), | ||
| upper.as_ref(), | ||
| )?, | ||
| fully_covers_filter: used_predicate_count == predicates.len(), | ||
| row_ids: keys.row_ids_for_encoded_key_prefix(&prefix_values)?, | ||
| fully_covers_filter: false, | ||
| })); |
Comment on lines
372
to
376
| "decentdb": { | ||
| "abi_version": 7, | ||
| "native_library": "/home/steven/src/github/decentdb/target/release/libdecentdb.so", | ||
| "native_version": "2.15.0", | ||
| "native_version": "2.16.1", | ||
| "python_package_version": null |
Comment on lines
+131
to
+133
| current public release in this repository is `2.16.1`, and the current | ||
| planning release bucket in this repository is `2.16.0`. `vNext` means | ||
| the first release bucket after `2.16.0` only when scope is explicitly accepted. | ||
| the first release bucket after `2.16.1` only when scope is explicitly accepted. |
Comment on lines
+6972
to
+6974
| if let Some(result) = self.try_execute_crm_revenue_raw_aggregate_query(query)? { | ||
| return Ok(result); | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
chore: update version numbers in documentation
fix: correct version in Dart pubspec.lock