matrixorigin / matrixorigin/matrixone

[Refactoring]: Migrate FORMAT, MAKEDATE, and MAKETIME integer parameters

Open
#28,981 0 comments 0 reactions 1 assignee Claimed by @ck89119 View on GitHub
kind/refactoring
Dominant language
Go
Stars
1.9k
Forks
311
Avg merge
1d 3h
Merged PRs (30d)
768

Description

## Parent

- #28893

## Dependency

Depends on the shared contract delivered by the binding-layer foundation subtask.

## Scope

Migrate special consumers whose non-integer operands or compatibility behavior require dedicated execution kernels:

- FORMAT precision, while preserving exact versus approximate first-argument domains and the pre-v59 persisted FORMAT bridge.
- MAKEDATE year/day, with calendar bounds checked before narrowing.
- MAKETIME hour/minute, while preserving fractional seconds, result scale, and legacy identities.

## Acceptance criteria

- Integer parameters use the shared binding contract; non-integer operands retain their existing domains.
- FORMAT catalog expressions downgrade without retaining MORPC v76 private identities.
- MAKEDATE rejects or returns NULL at documented calendar/range boundaries without int32 wraparound.
- MAKETIME preserves fractional seconds and scale and does not route hour/minute through FLOAT.
- Constants, columns, prepared values, NULL, overflow, catalog restart, and legacy execution identities are covered.
- No new global coercion semantics is introduced.

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.