[FLINK-36474] Support merging timestamp columns when routing #3636
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This closes FLINK-36474.
For now, it's not possible to merge timestamp-family data (including
Timestamp
,ZonedTimestamp
, andLocalZonedTimestamp
) without some awkward transform rules and explicit castings. This PR adds the following type coercions:TIME
s,TIMESTAMP
s,TIMESTAMP_TZ
s, andTIMESTAMP_LTZ
s with promoted precisionFor example,
TIMESTAMP(3)
andTIMESTAMP(6)
will be considered compatible and data with lower precision will be automatically escalated to the higher one.TIMESTAMP_TZ
s andTIMESTAMP_LTZ
s will be converted toTIMESTAMP
if necessary.I reused some code from
SystemFunctionUtils#castToTimestamp
, so this implicit behavior should be equivalent to writing explicit castings manually.