matrixorigin / matrixorigin/matrixone
[Subtask]: Add compatibility and end-to-end coverage for Substrait offload
- Dominant language
- Go
- Stars
- 1.9k
- Forks
- 311
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 768
Description
## Parent issue
Parent issue: #26154
## Goal
Provide the compatibility, differential, storage-race, lifecycle, and E2E evidence required to ship Substrait sidecar offload. Matching rows alone is insufficient: tests must prove the expected backend executed and every terminal resource was released.
## Delivered foundation
matrixorigin/matrixone#26660 added:
- a runner contract with query-scoped execution evidence and explicit native/offloaded expectations;
- schema-first, byte-exact typed row comparison preserving NULL/text/binary distinctions and duplicate multiplicity;
- stable SQL error comparison;
- ordered, exact unordered, and bounded failure-path comparisons; and
- deterministic permission-restricted, secret-redacted failure artifacts.
## Remaining coverage
1. **All-22 TPC-H differential:** load an eligible flushed dataset, run Q1-Q22 natively and through the sidecar, compare typed results, and require actual Sirius GPU execution with no DuckDB CPU fallback.
2. **Semantic counterexamples:** join NULLs/duplicates/empty sides; decimal precision, scale, rounding, overflow and division errors; date epoch/leap boundaries; `CASE`, `IN`, `LIKE`, prefix, extraction and substring; empty/global/grouped aggregates; ordering and limit ties; and Q15's accepted shared-plan representation.
3. **Contract/version skew:** canonical capability mismatch, malformed anchors/types/references, `TaeRead` binding failures, schema drift, ticket replay, and unsupported descendants must fail or fall back at the specified boundary.
4. **Storage/lifecycle:** interleave admission with flush/delete/commit, schema change, compaction and GC; exercise slow clients, cancellation, disconnect, sidecar crash, CN shutdown, decoder failure and MySQL write failure; assert no leaked execution, worker, ticket, resolver entry, object pin, or lease.
5. **CI tiers:** retain a compact CPU-only contract/differential gate and add GPU/object-store/fault-injection coverage with an explicit required summary where infrastructure permits.
## Acceptance criteria
- Every declared relation, type, and overload has positive and negative deterministic coverage.
- Q1-Q22 match MatrixOne native results and record real Sirius GPU execution.
- Unsupported or unsafe inputs fall back before visible output; post-visibility failures never replay.
- Failure injection proves exactly-once terminal cleanup and no surviving read after cancellation acknowledgement.
Contributor guide
Assessment
This issue has not been assessed yet.