pkg/ddl: fix an issue where endkey usage issues caused index loss (#47818) #47884
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.
This is an automated cherry-pick of #47818
What problem does this PR solve?
Issue Number: close #46306
Problem Summary:
Ref: #45679. Before this PR(#45679 ), we used [startKey, endKey] with endInclude as the table range. After this PR we used [startKey, endKey.next).
We do "add index" on a branch without #45679, then get startKey and endKey with the range [startKey, endKey].
Then we do upgrade, we will continue to "add index" in the branch with #45679. And we use [startKey, endKey).
What is changed and how it works?
If the old version upgrades to the new version, we add Next to the endKey.
Check List
Tests
deploy v7.1.1+ cluster
set @@global.tidb_ddl_enable_fast_reorg = 0;
Create a table and import 3.5 million rows.
Do
alter table t add index idx(a, b);
, and when it backfills 700,000+ indexes, kill the cluster.Then upgrade this cluster to master.
After upgrading successfully, do
admin check index t idx
Result:
ERROR 8223 (HY000): data inconsistency in table: t, index: idx, handle: 3572562, index-values:"" != record-values:"handle: 3572562, values: [KindString 131 KindString xxx]"
Query OK
.Side effects
Documentation
Release note
Please refer to Release Notes Language Style Guide to write a quality release note.