planner: add more generated columns into update list #58401
+63
−8
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.
What problem does this PR solve?
Issue Number: close #58400
Problem Summary:
There are two problems related to genearted column.
For Update:
When building
UpdateLists
forupdate
statements, generated columns should be updated if their dependent columns have changed. However, we ignore theON UPDATE NOW
flag when extracting dependent columns. This could make certain generated columns not being updated correctly.For Insert:
In SQL like
INSERT INTO xxx VALUES xxx ON DUPLICATE KEY UPDATE xxx
, the generated columns to be updated are solely determined by the assignments inUPDATE
. For example:The dependencies of each column are listed below. Since
j1
is updated,j2
and_V$_i1_0
are also updated. However, due to chain dependencies,_V$_i2_0
should also be updated too.What changed and how does it work?
In summary, when extracting generated columns, we have to consider both chain dependencies and on-update-now flag too.
Check List
Tests
Side effects
Documentation
Release note
Please refer to Release Notes Language Style Guide to write a quality release note.