From 617a8ff00d95046d5b429b2c67c13654c7b172d6 Mon Sep 17 00:00:00 2001 From: Ti Chi Robot Date: Thu, 17 Aug 2023 11:57:51 +0800 Subject: [PATCH] ddl, session: using table ID instead of partition ID when calling `SplitRegions` (#46156) (#46163) close pingcap/tidb#46135 --- ddl/split_region.go | 8 ++++---- session/session.go | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ddl/split_region.go b/ddl/split_region.go index b201bf65538f3..7784968ecf4bd 100644 --- a/ddl/split_region.go +++ b/ddl/split_region.go @@ -42,7 +42,7 @@ func splitPartitionTableRegion(ctx sessionctx.Context, store kv.SplittableStore, } } else { for _, def := range pi.Definitions { - regionIDs = append(regionIDs, SplitRecordRegion(ctxWithTimeout, store, def.ID, scatter)) + regionIDs = append(regionIDs, SplitRecordRegion(ctxWithTimeout, store, def.ID, tbInfo.ID, scatter)) } } if scatter { @@ -58,7 +58,7 @@ func splitTableRegion(ctx sessionctx.Context, store kv.SplittableStore, tbInfo * if shardingBits(tbInfo) > 0 && tbInfo.PreSplitRegions > 0 { regionIDs = preSplitPhysicalTableByShardRowID(ctxWithTimeout, store, tbInfo, tbInfo.ID, scatter) } else { - regionIDs = append(regionIDs, SplitRecordRegion(ctxWithTimeout, store, tbInfo.ID, scatter)) + regionIDs = append(regionIDs, SplitRecordRegion(ctxWithTimeout, store, tbInfo.ID, tbInfo.ID, scatter)) } if scatter { WaitScatterRegionFinish(ctxWithTimeout, store, regionIDs...) @@ -118,8 +118,8 @@ func preSplitPhysicalTableByShardRowID(ctx context.Context, store kv.SplittableS } // SplitRecordRegion is to split region in store by table prefix. -func SplitRecordRegion(ctx context.Context, store kv.SplittableStore, tableID int64, scatter bool) uint64 { - tableStartKey := tablecodec.GenTablePrefix(tableID) +func SplitRecordRegion(ctx context.Context, store kv.SplittableStore, physicalTableID, tableID int64, scatter bool) uint64 { + tableStartKey := tablecodec.GenTablePrefix(physicalTableID) regionIDs, err := store.SplitRegions(ctx, [][]byte{tableStartKey}, scatter, &tableID) if err != nil { // It will be automatically split by TiKV later. diff --git a/session/session.go b/session/session.go index bac58333e945c..2295c0b50060a 100644 --- a/session/session.go +++ b/session/session.go @@ -3100,7 +3100,7 @@ func splitAndScatterTable(store kv.Storage, tableIDs []int64) { ctxWithTimeout, cancel := context.WithTimeout(context.Background(), variable.DefWaitSplitRegionTimeout*time.Second) var regionIDs []uint64 for _, id := range tableIDs { - regionIDs = append(regionIDs, ddl.SplitRecordRegion(ctxWithTimeout, s, id, variable.DefTiDBScatterRegion)) + regionIDs = append(regionIDs, ddl.SplitRecordRegion(ctxWithTimeout, s, id, id, variable.DefTiDBScatterRegion)) } if variable.DefTiDBScatterRegion { ddl.WaitScatterRegionFinish(ctxWithTimeout, s, regionIDs...)