Skip to content

fix(numeric): preserve opaque decimal root column names - #28

Merged
aunjgr merged 2 commits into
matrixorigin:upstream-dev-mergefrom
aunjgr:fix/28968-opaque-decimal-root-names
Oct 9, 2026
Merged

aunjgr merged 2 commits into
matrixorigin:upstream-dev-mergefrom
aunjgr:fix/28968-opaque-decimal-root-names

Conversation

@aunjgr

@aunjgr aunjgr commented Oct 8, 2026 •

Copy link
Copy Markdown
Collaborator

MO Q1 native preparation read past its SQL root names because Decimal256's private four-limb STRUCT carrier was counted as nested SQL fields. Mark canonical exact-decimal carriers opaque through the query-scoped importer policy, so each remains one result column and following aliases keep their positions.

Pins merged importer #5, revision 99c7ca3b6f8f3159239e119ed2982d42f98c4690. The callback validates the full canonical carrier through the existing descriptor decoder. The regression binds Decimal64/128/256 at precision 15 followed by an independent BIGINT result, asserting both headings and the exact physical descriptor; ordinary STRUCTs remain outside this policy. Numeric arithmetic, GPU kernels, C ABI layouts and capability mask 31 are unchanged.

Validated at head 433cadd43a10442b0825a23234fb6d859207e9d5, frozen Pixi mo:

  • Clean incremental build, native binding suite: 852 assertions / 81 cases passed.
  • Production exact-numeric C ABI: 1,468 / 8 passed, including aggregate widths/NULLs, scalar-versus-aggregate/cast errors, conditional masks, exact joins, Decimal256 ordering and healthy reuse.
  • Independent C consumer: passed real GPU execution, source/result credit and runtime lifecycle checks.
  • SDK exporter: 8 tests passed. Regenerated SDK records the exact clean head (source_dirty=false); all 73 artifact fingerprints, ABI/header and canonical literal schema match.
  • All repository-pinned changed-file hooks passed. Refreshed actual base upstream-dev-merge; zero commits behind; self-review found no in-scope blocker.

The merged importer tree matches the tested fix. Its canonical importer regressions previously passed 157 / 3, and joint development binding coverage passed 1,009 / 84. Importer distribution CI's seven failures were classified against its exact clean base, including a prior STRUCT field-selection failure/crash and five independently reproduced later failures; no assertion was weakened or skipped. This does not claim full distribution or compiler CI is green; current-head CI is tracked separately.

MO C is saved locally and will pin this PR only after it merges, then rerun all-22 native preparation and full public numeric validation. The parity campaign D follows merged, validated C. Refs matrixorigin/matrixone#28968 and matrixorigin/matrixone#28966.

@aunjgr
aunjgr marked this pull request as ready for review October 8, 2026 18:46
@aunjgr
aunjgr merged commit af4dc60 into matrixorigin:upstream-dev-merge Oct 9, 2026
6 of 9 checks passed
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.

1 participant