fix: preserve SIGN numeric type in prepared statements - #28636
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? |
de323e6 to
fc9f09c
Compare
XuPeng-SH
left a comment
There was a problem hiding this comment.
Reviewed the complete current diff at 0323d82. Extending the existing ABS deferred-numeric mechanism to SIGN is a reasonable focused fix: PREPARE avoids premature integer coercion, while EXECUTE rebinds the input overload from the runtime numeric category and retains the stable result contract. Traced marker creation, cached parameter-position eligibility, replacement/rebinding, explicit numeric CAST boundaries, and the scalar-subquery reference-preserving branch. Ordinary column expressions without a prepared parameter retain the existing binding path. The tests cover exact overload selection plus real SQL PREPARE/EXECUTE and binary COM_STMT execution, repeated fractional/integer domain changes, explicit casts, and NULL. Additional decoding/rebinding is limited to statements carrying the deferred metadata; ordinary executions do not gain a new expression-tree walk from this change. No new shared-state owner or persistent format is introduced. Reused successful current-head SCA, UT, coverage, and BVT checks; no concrete correctness, unhappy-path, or performance blocker found.
Merge Queue Status
This pull request spent 1 hour 7 minutes in the queue, with no time running CI. Waiting for any of
All conditions
ReasonPull request #28636 has been dequeued Pull request from fork cannot be queued. This pull request comes from a fork, and Mergify needs the author's permission to update its branch.
HintYou should look at the reason for the failure and decide if the pull request needs to be fixed or if you want to requeue it. Tick the box to put this pull request back in the merge queue (same as
|
What type of PR is this?
Which issue(s) this PR fixes:
issue #28583
What this PR does / why we need it:
fix: preserve SIGN numeric type in prepared statements