matrixorigin / matrixorigin/matrixone
[Refactoring]: Add the shared integer-parameter binding contract
- Dominant language
- Go
- Stars
- 1.9k
- Forks
- 311
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 768
Description
## Parent
- #28893
## Scope
Establish the shared binding-layer contract for semantically integral function parameters and migrate SUBSTRING_INDEX as the representative end-to-end consumer.
- Add parameter-owned integer metadata and shared source-domain coercion.
- Preserve exact DECIMAL, approximate FLOAT, explicit REAL, text-prefix, signed/unsigned, NULL, and inactive-row semantics.
- Preserve legacy overload execution identities while excluding compatibility-only entries from new binding.
- Preserve typed prepared-parameter provenance and bounded plan specialization.
- Add MORPC v76 remote execution and persisted-expression admission for new private execution identities.
- Cover selector lowering, constant folding, catalog round trips, mixed-version rejection, and restart recovery.
## Non-goals
- Bulk migration of the remaining inventory.
- Function-specific conversion kernels.
- Global conversion-cost changes.
- Changes to explicit CAST or assignment semantics.
## Acceptance criteria
- SUBSTRING_INDEX binds its count through the canonical INT64 contract.
- Legacy SUBSTRING_INDEX overload identities remain executable but are not selected for new expressions.
- Protocol 75 rejects and protocol 76 accepts new serialized identities.
- Prepared constants, columns, SQL EXECUTE, binary parameters, NULL, exact boundaries, and overflow are covered.
- This issue owns the design review. Follow-up migration issues reuse this approved contract unless they introduce a new semantic or compatibility mechanism.
Contributor guide
Assessment
This issue has not been assessed yet.