*: consitent get infoschema (#24230)#24528
Closed
ti-srebot wants to merge 1 commit intopingcap:release-4.0from
Closed
*: consitent get infoschema (#24230)#24528ti-srebot wants to merge 1 commit intopingcap:release-4.0from
ti-srebot wants to merge 1 commit intopingcap:release-4.0from
Conversation
Signed-off-by: ti-srebot <ti-srebot@pingcap.com>
Member
|
[REVIEW NOTIFICATION] This pull request has not been approved. To complete the pull request process, please ask the reviewers in the list to review by filling The full list of commands accepted by this bot can be found here. DetailsReviewer can indicate their review by writing |
Contributor
Author
|
/run-all-tests |
Contributor
Author
|
@xhebox you're already a collaborator in bot's repo. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
cherry-pick #24230 to release-4.0
You can switch your code base to this Pull Request by using git-extras:
# In tidb repo: git pr https://github.com/pingcap/tidb/pull/24528After apply modifications, you can push your change to this PR via:
What problem does this PR solve?
The main issue: #24233
Problem Summary: In some cases,
TxnCtx.InfoSchemais directly used while there may beSnapshotInfoSchema. There was a similar fix #15258, only for distsql. There are more left cases:While I want to replace all
TxnCtx.InfoSchemaintoinfoschema.GetInfoSchema(sessionCtx), I found that there will be a circular dependency inexpression -> ... -> infoschema -> expression.So I moved
GetInfoSchemafunction intosessionctx/variable, as a method ofSessionVars. Then replaced all calls intosessionVars.GetInfoSchema().(infoschema.InfoSchema). For expression package, it issessionVars.GetInfoSchema().(util.SequenceSchema). That is why this PR is large.The call is a bit longer with the extra
GetSessionVars()and type cast.(infoschema.InfoSchema), but it works and removed one of foursessionctximports in the infoschema package. Hopefully infoschema will not depend on sessionctx in the future...Check List
Tests
Release note