-
Notifications
You must be signed in to change notification settings - Fork 5.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
infoschema: fix inserting into a temporary table panics after the database is dropped #29263
Conversation
[REVIEW NOTIFICATION] This pull request has been approved by:
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. Reviewer can indicate their review by submitting an approval review. |
I encountered an unstable test #29264 and I'm trying to run it again. |
/run-check_dev_2 |
/merge |
This pull request has been accepted and is ready to merge. Commit hash: b68aee5
|
@djshow832: Your PR was out of date, I have automatically updated it for you. At the same time I will also trigger all tests for you: /run-all-tests If the CI test fails, you just re-trigger the test that failed and the bot will merge the PR for you after the CI passes. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the ti-community-infra/tichi repository. |
What problem does this PR solve?
Issue Number: close #29255
Problem Summary:
After the database is dropped, the
DBInfo
cannot be fetched byTemporaryTableAttachedInfoSchema
, soast.TableName.DBInfo
is set tonil
. However, many places rely onDBInfo
, especially DML. This will lead to panic.What is changed and how it works?
Retain
DBInfo
inTemporaryTableAttachedInfoSchema
.TemporaryTableAttachedInfoSchema.SchemaByTable
returns theDBInfo
even when the database is dropped, as long as the temporary table exists.SchemaByName
still returnsnil
when the database is dropped. I've checked the usage ofSchemaByName
and found it's safe so far, but there's a potential risk that future usages callSchemaByName
instead ofSchemaByTable
to fetch theDBInfo
when checking the existence of a temporary table.This PR does not involve any release notes because it's a new feature, which is not documented yet.
Check List
Tests
Side effects
Documentation
Release note