matrixorigin / matrixorigin/matrixone

[Subtask]: Add compatibility and end-to-end coverage for Substrait offload

Open
#26,159 1 comment 0 reactions 1 assignee Claimed by @aunjgr View on GitHub
kind/subtask
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.