refactor(plan): migrate remaining legacy UPDATE special cases - #26596
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? |
XuPeng-SH
left a comment
There was a problem hiding this comment.
Deep-reviewed at cb39c93. No blocking findings.
Checked the removed legacy routes end to end:
- mo_pubs/mo_subs PK/UK updates now build modern MULTI_UPDATE contexts, including the mo_subs hidden unique index; the integration test covers key migration, duplicate-key atomicity, ordinary/join updates, and tenant authorization.
- SET AUTO_INCREMENT preserves SET conversion and PRE_INSERT. On an exact-head temporary service I compared explicit, 0, NULL, and DEFAULT assignments against the base legacy path; plans changed as intended and row results remained identical.
- The remaining auto-increment + affected-FK case keeps an explicit typed legacy reason instead of becoming a catch-all.
Exact-head validation passed: full pkg/sql/plan and pkg/sql/compile tests, TestIssue26342MoSubsModernUpdate, go vet for pkg/sql/plan and pkg/tests/issues, and a full mo-service build.
|
@Mergifyio refresh |
✅ Pull request refreshed |
Merge Queue Status
This pull request spent 51 minutes 34 seconds in the queue, with no time running CI. ReasonPull request #26596 has been merged manually at 1878a38 HintYou were too fast! 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 #26342
What this PR does / why we need it:
This PR removes the remaining legacy UPDATE planner fallbacks owned by issue #26342.
mo_pubsandmo_substhrough the modernMULTI_UPDATEplanner.SET ... AUTO_INCREMENTupdates throughMULTI_UPDATEwhile preserving SET value conversion andPRE_INSERThandling.auto_increment_foreign_keytelemetry reason.PRE_INSERT,MULTI_UPDATE, and the retained foreign-key control path.Validation:
pkg/sql/plantests with coverage.pkg/sql/compiletests.go buildandgo vetforpkg/sql/planandpkg/sql/compile.git diff --check.