fix: support TIMESTAMP(date, time) - #27722
Conversation
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
0e23108 to
e10a54f
Compare
|
Addressed the current-head P1 on
Validation on the pushed head before publication: function-package CGo tests PASS, timestamp-pair race tests PASS, CTAS planner test PASS, and semantic preflight PASS. Local Please re-review the timestamp-pair change. |
aptend
left a comment
There was a problem hiding this comment.
Re-review of exact head d0bebfd against base 662c1bd and prior reviewed head 63fde56. I read the complete review/comment/reply history, including the resolved thread, checked the repair increment, and re-audited the full PR diff and issue #27649.
The previous blocker is closed: typed and datetime-shaped values now extract a stable clock component with date subtraction, so today/tomorrow no longer changes the result. The full-diff audit found one remaining blocking character-input format gap; see the inline P1. A separator-free DATETIME accepted by MatrixOne and MySQL is still misread as an enormous elapsed TIME and becomes NULL.
Validation on the exact head:
- full
./pkg/sql/plan/functiontests passed - focused timestamp-pair and CTAS planner race tests passed
- a temporary focused compact-DATETIME counterexample reproduced the NULL result and was removed
- a local MySQL 9.6 control returned
2024-01-01 12:00:00.123456for the identical query git diff --checkpassed and the worktree was clean
Fresh exact-head CI was still in progress when this review was submitted; no CI completion is claimed.
|
Addressed the current-head BVT failure from run
Validation on pushed head
Fresh checks are pending on the repaired head. The existing review threads remain resolved; |
Merge Queue Status
This pull request spent 2 hours 1 minute 15 seconds in the queue, including 45 minutes 29 seconds running CI. Required conditions to merge
|
What type of PR is this?
Which issue(s) this PR fixes:
issue #27649
What this PR does / why we need it:
TIMESTAMP(date, time)overload without changing existing unary overload IDs or semanticsDATE/DATETIME/TIMESTAMP/TIMEandCHAR/VARCHAR/TEXTrepresentations; binary string OIDs are rejected during bindingDATETIME(fsp), deriving valid constant-string FSP from fractional digits while keeping columns and parameters conservativeDATETIMEclock time with a stable date subtraction, so results do not depend on whether the value date is today or tomorrowD hh:mm:sselapsed-time strings, applies session timezone to aTIMESTAMPfirst argument, and returnsNULLfor invalid or out-of-range rowsQA required: yes. This changes user-visible SQL compatibility behavior.
Validation on exact head
4ae2d80f21397de3dc0d0d9cea2385e8df95cc33:./pkg/sql/plan/function: PASS./pkg/sql/plan: PASSPASS semantic=PASSwith clean-head diff hash647418b5bc6f4dbe41f24e4201d4cbb862745dcaefd62f514636a3619a525d10gofmt -dandgit diff --check: PASS; worktree is clean and local HEAD equals the remote PR headGOWORK=off go buildandgo vetfor./pkg/sql/plan/...: BLOCKED by the existingpkg/common/docfilterCGo symbol-resolution environment; no build/vet pass is claimed33100156204isolated two stale expected metadata/value rows infunc_timestamp.test; the result oracle now records DATETIME(0) for the no-fraction literals and preserves DATETIME(6) for the fractional literal