Skip to content
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

*: Introduce TemporaryTableDDL to provide unified APIs for temporary table ddl operations #27776

Merged
merged 9 commits into from
Sep 6, 2021

Conversation

lcwangchao
Copy link
Collaborator

@lcwangchao lcwangchao commented Sep 2, 2021

What problem does this PR solve?

Issue Number: close #27775

Problem Summary:

We have too many temporary table states in session.variables and they are exposed to users directly. For example, when dropping a local temporary table, the ddl executor should invoke sessVars.LocalTemporaryTables.RemoveTable first and then clear the table's data in sessVars.TemporaryTableData.

To decouple those codes, we should introduce a package to manage these operations and provide unified APIs. For the ddl operations this pr introduces a new interface TemporaryTableDDL to do the ddl things. It hides detail states in session.variable and the users should not care about it.

The defination of TemporaryTableDDL is:

type TemporaryTableDDL interface {
	CreateLocalTemporaryTable(schema model.CIStr, info *model.TableInfo) error
	DropLocalTemporaryTable(schema model.CIStr, tblName model.CIStr) error
	TruncateLocalTemporaryTable(schema model.CIStr, tblName model.CIStr) error
}

The current pr only provides some ddl APIs. More works will be done in later prs.

The pr is also required by #26952 to provide some methods to custom snapshot retrievers. You can see the draft here: #26948

What is changed and how it works?

Introduce TemporaryTableDDL to provide unified APIs for temporary table ddl operations

Check List

Tests

  • Unit test

Release note

None

@ti-chi-bot
Copy link
Member

ti-chi-bot commented Sep 2, 2021

[REVIEW NOTIFICATION]

This pull request has been approved by:

  • djshow832
  • tiancaiamao

To complete the pull request process, please ask the reviewers in the list to review by filling /cc @reviewer in the comment.
After your PR has acquired the required number of LGTMs, you can assign this pull request to the committer in the list by filling /assign @committer in the comment to help you merge this pull request.

The full list of commands accepted by this bot can be found here.

Reviewer can indicate their review by submitting an approval review.
Reviewer can cancel approval by submitting a request changes review.

@ti-chi-bot ti-chi-bot added release-note-none Denotes a PR that doesn't merit a release note. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Sep 2, 2021
@lcwangchao lcwangchao changed the title *: Provide TemporaryTableManager to provide unified APIs for temporary table ddl opeartions *: Introduce TemporaryTableManager to provide unified APIs for temporary table ddl opeartions Sep 2, 2021
@lcwangchao lcwangchao changed the title *: Introduce TemporaryTableManager to provide unified APIs for temporary table ddl opeartions *: Introduce TemporaryTableDDL to provide unified APIs for temporary table ddl operations Sep 3, 2021
@lcwangchao
Copy link
Collaborator Author

/run-check_dev_2

@lcwangchao lcwangchao added the sig/sql-infra SIG: SQL Infra label Sep 3, 2021
@ti-chi-bot ti-chi-bot added the status/LGT1 Indicates that a PR has LGTM 1. label Sep 4, 2021
@ti-chi-bot ti-chi-bot added status/LGT2 Indicates that a PR has LGTM 2. and removed status/LGT1 Indicates that a PR has LGTM 1. labels Sep 6, 2021
@djshow832
Copy link
Contributor

/merge

@ti-chi-bot
Copy link
Member

This pull request has been accepted and is ready to merge.

Commit hash: 12e035c

@ti-chi-bot ti-chi-bot added the status/can-merge Indicates a PR has been approved by a committer. label Sep 6, 2021
@ti-chi-bot
Copy link
Member

@lcwangchao: 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.

@ti-chi-bot ti-chi-bot merged commit 8125b0a into pingcap:master Sep 6, 2021
@lcwangchao lcwangchao deleted the temp_table_mgr branch September 6, 2021 03:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release-note-none Denotes a PR that doesn't merit a release note. sig/sql-infra SIG: SQL Infra size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. status/can-merge Indicates a PR has been approved by a committer. status/LGT2 Indicates that a PR has LGTM 2.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Provide TemporaryTableDDL to mange temporary table ddl opeartions.
4 participants