Repository navigation
feat(numeric): complete embedded MO aggregates and exact capability - #27
Merged
aunjgr merged 1 commit intoOct 8, 2026
Conversation
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.
Description
Native B completes embedded MO exact-decimal execution after #26. SUM/AVG/MIN/MAX now retain MO's declared types through import, binding, local/merge aggregation and final publication. Equality partitioning and probing share a scale-independent exact key; grouping, signed ordering and outer-join NULLs retain Decimal256 values. The production C ABI appends numeric statuses 12/13 and enables
SIRIUS_CAP_MO_EXACT_DECIMAL_V1(mask16u, total mask31u) while preserving ABI-v1 struct layouts.The approved Native B boundary keeps these consumers together because import descriptors, raw state schemas, partition/probe keys and publication must agree before the complete capability can be advertised. MO lowering, public acceptance, default cutover and service retirement remain separate C–F increments. C starts after this PR merges and is pinned.
The contract, ownership graph, supported-shape limits and validation map give the review order. Semantic authority is the approved MO #29449 blob
42a89f09a1d168d02b9583cb3ea7b4de6dbb5634; #29690 records the delivery split.Validation
Frozen
moPixi release build, CUDA 13.3.73 / GCC 14.4 / cuDF-RMM 26.08, RTX 3070 driver 615.71.09. Production tests use bounded 1 GiB GPU/host/disk configuration.All raw benchmark runs are retained: three complete invocations, each with a three-second global warmup, two per-case warmups and seven measured repetitions at 262,144 rows. Pooled exact/control ratios are 0.7931 for safe SUM64→128 and 0.8165 for evaluator add64. The unchanged checked-add64 primitive's historical comparison is +18.15%, with run medians 0.027530–0.033940 ms; fresh matched confirmation remains required in D under the 10% policy. No rollout exception is claimed.
Full leak checking of the existing nonnumeric control selection is not clean: it reports a 41,386,248-byte cuDF default pinned pool and a generic CUB
EmptyKernelregistration diagnostic in the unchanged converter path. That selection's 11,034 assertions / 3 cases pass. The new aggregate CUDA object has no CUB scan/empty-kernel symbols; the two new scan diagnostics were eliminated. D still owns full process-baseline, lifecycle/resource and real public SQL acceptance.Checklist
References
Refs matrixorigin/matrixone#28968, matrixorigin/matrixone#28966, matrixorigin/matrixone#29449, matrixorigin/matrixone#29690.
Follows #25, #26 and merged matrixorigin/duckdb-substrait#3 / matrixorigin/duckdb-substrait#4. The importer pin remains
95d9ce8d78490db3991ab6145653716aa3ec42c9.