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

ddl: improve compatibility for ALTER TABLE algorithms (#19270) #19364

Merged
merged 2 commits into from
Aug 21, 2020

Conversation

ti-srebot
Copy link
Contributor

cherry-pick #19270 to release-4.0


What problem does this PR solve?

Issue Number: close #19162

ALGORITHM=x means "this or better", whereby INSTANT > INPLACE > COPY. As long the definition of supported field follows this order, the loop will always choose the best algorithm.

The comparison works due to how types are defined in the parser. Its definition follows the order default < copy < inplace < instant.

So this loop means that if there is an equal or better algorithm, it is chosen. Maybe I should have a LessOrEqual method on this type, and not to rely on the enum definition.

If the chosen algorithm is not same as the specified one, an error is returned for TiDB to report the warning. So an error may come from the better algorithm choosing strategy, which is actually a successful case.

As a result, the fail case, no matching algorithm is identified by AlgorithmTypeDefault and an error.

Check List

Tests

  • Unit test
  • Integration test

Release note

  • Improve compatibility for ALTER TABLE algorithms

Signed-off-by: ti-srebot <ti-srebot@pingcap.com>
@ti-srebot
Copy link
Contributor Author

/run-all-tests

@bb7133
Copy link
Member

bb7133 commented Aug 21, 2020

/run-all-tests

@bb7133
Copy link
Member

bb7133 commented Aug 21, 2020

/run-common-test --tidb-test=pr/1076

@bb7133
Copy link
Member

bb7133 commented Aug 21, 2020

/run-integration-common-test --tidb-test=pr/1076

Copy link
Member

@wjhuang2016 wjhuang2016 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@ti-srebot ti-srebot added the status/LGT1 Indicates that a PR has LGTM 1. label Aug 21, 2020
@bb7133
Copy link
Member

bb7133 commented Aug 21, 2020

LGTM

@ti-srebot ti-srebot added status/LGT2 Indicates that a PR has LGTM 2. and removed status/LGT1 Indicates that a PR has LGTM 1. labels Aug 21, 2020
@bb7133
Copy link
Member

bb7133 commented Aug 21, 2020

/merge

@ti-srebot
Copy link
Contributor Author

Sorry @bb7133, you don't have permission to trigger auto merge event on this branch.
The version releasement is in progress.

@jebter
Copy link

jebter commented Aug 21, 2020

/run-all-tests

@jebter
Copy link

jebter commented Aug 21, 2020

/merge

@ti-srebot ti-srebot added the status/can-merge Indicates a PR has been approved by a committer. label Aug 21, 2020
@ti-srebot
Copy link
Contributor Author

/run-all-tests

@ti-srebot
Copy link
Contributor Author

@ti-srebot merge failed.

@jebter
Copy link

jebter commented Aug 21, 2020

/run-integration-ddl-test

@jebter jebter merged commit 829c8a7 into pingcap:release-4.0 Aug 21, 2020
@pingcap pingcap deleted a comment from jebter Aug 21, 2020
@pingcap pingcap deleted a comment from jebter Aug 21, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
contribution This PR is from a community contributor. sig/sql-infra SIG: SQL Infra status/can-merge Indicates a PR has been approved by a committer. status/LGT2 Indicates that a PR has LGTM 2. type/4.0-cherry-pick
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants