Skip to content

Commit 2abf83d

Browse files
authored
*: remove feedback (#45969)
ref #46056
1 parent 9411e82 commit 2abf83d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+226
-4377
lines changed

br/pkg/backup/client.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -471,7 +471,7 @@ func appendRanges(tbl *model.TableInfo, tblID int64) ([]kv.KeyRange, error) {
471471
}
472472

473473
retRanges := make([]kv.KeyRange, 0, 1+len(tbl.Indices))
474-
kvRanges, err := distsql.TableHandleRangesToKVRanges(nil, []int64{tblID}, tbl.IsCommonHandle, ranges, nil)
474+
kvRanges, err := distsql.TableHandleRangesToKVRanges(nil, []int64{tblID}, tbl.IsCommonHandle, ranges)
475475
if err != nil {
476476
return nil, errors.Trace(err)
477477
}
@@ -482,7 +482,7 @@ func appendRanges(tbl *model.TableInfo, tblID int64) ([]kv.KeyRange, error) {
482482
continue
483483
}
484484
ranges = ranger.FullRange()
485-
idxRanges, err := distsql.IndexRangesToKVRanges(nil, tblID, index.ID, ranges, nil)
485+
idxRanges, err := distsql.IndexRangesToKVRanges(nil, tblID, index.ID, ranges)
486486
if err != nil {
487487
return nil, errors.Trace(err)
488488
}

br/pkg/checksum/executor.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ func buildTableRequest(
238238
var builder distsql.RequestBuilder
239239
// Use low priority to reducing impact to other requests.
240240
builder.Request.Priority = kv.PriorityLow
241-
return builder.SetHandleRanges(nil, tableID, tableInfo.IsCommonHandle, ranges, nil).
241+
return builder.SetHandleRanges(nil, tableID, tableInfo.IsCommonHandle, ranges).
242242
SetStartTS(startTS).
243243
SetChecksumRequest(checksum).
244244
SetConcurrency(int(concurrency)).

br/pkg/lightning/backend/local/duplicate.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -227,13 +227,13 @@ func tableHandleKeyRanges(tableInfo *model.TableInfo) (*tidbkv.KeyRanges, error)
227227
ranges = ranger.FullRange()
228228
}
229229
tableIDs := physicalTableIDs(tableInfo)
230-
return distsql.TableHandleRangesToKVRanges(nil, tableIDs, tableInfo.IsCommonHandle, ranges, nil)
230+
return distsql.TableHandleRangesToKVRanges(nil, tableIDs, tableInfo.IsCommonHandle, ranges)
231231
}
232232

233233
// tableIndexKeyRanges returns all key ranges associated with the tableInfo and indexInfo.
234234
func tableIndexKeyRanges(tableInfo *model.TableInfo, indexInfo *model.IndexInfo) (*tidbkv.KeyRanges, error) {
235235
tableIDs := physicalTableIDs(tableInfo)
236-
return distsql.IndexRangesToKVRangesForTables(nil, tableIDs, indexInfo.ID, ranger.FullRange(), nil)
236+
return distsql.IndexRangesToKVRangesForTables(nil, tableIDs, indexInfo.ID, ranger.FullRange())
237237
}
238238

239239
// DupKVStream is a streaming interface for collecting duplicate key-value pairs.

ddl/index_cop.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ import (
3232
"github.com/pingcap/tidb/sessionctx"
3333
"github.com/pingcap/tidb/sessionctx/stmtctx"
3434
"github.com/pingcap/tidb/sessionctx/variable"
35-
"github.com/pingcap/tidb/statistics"
3635
"github.com/pingcap/tidb/table"
3736
"github.com/pingcap/tidb/table/tables"
3837
"github.com/pingcap/tidb/tablecodec"
@@ -429,7 +428,7 @@ func (c *copContext) buildTableScan(ctx context.Context, startTS uint64, start,
429428
if err != nil {
430429
return nil, err
431430
}
432-
return distsql.Select(ctx, c.sessCtx, kvReq, c.fieldTps, statistics.NewQueryFeedback(0, nil, 0, false))
431+
return distsql.Select(ctx, c.sessCtx, kvReq, c.fieldTps)
433432
}
434433

435434
func (c *copContext) fetchTableScanResult(ctx context.Context, result distsql.SelectResult,

ddl/reorg.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -561,7 +561,7 @@ func (dc *ddlCtx) buildDescTableScan(ctx *JobContext, startTS uint64, tbl table.
561561
} else {
562562
ranges = ranger.FullIntRange(false)
563563
}
564-
builder = b.SetHandleRanges(sctx.GetSessionVars().StmtCtx, tbl.GetPhysicalID(), tbl.Meta().IsCommonHandle, ranges, nil)
564+
builder = b.SetHandleRanges(sctx.GetSessionVars().StmtCtx, tbl.GetPhysicalID(), tbl.Meta().IsCommonHandle, ranges)
565565
builder.SetDAGRequest(dagPB).
566566
SetStartTS(startTS).
567567
SetKeepOrder(true).
@@ -578,7 +578,7 @@ func (dc *ddlCtx) buildDescTableScan(ctx *JobContext, startTS uint64, tbl table.
578578
return nil, errors.Trace(err)
579579
}
580580

581-
result, err := distsql.Select(ctx.ddlJobCtx, sctx, kvReq, getColumnsTypes(handleCols), statistics.NewQueryFeedback(0, nil, 0, false))
581+
result, err := distsql.Select(ctx.ddlJobCtx, sctx, kvReq, getColumnsTypes(handleCols))
582582
if err != nil {
583583
return nil, errors.Trace(err)
584584
}

distsql/BUILD.bazel

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ go_library(
2323
"//sessionctx",
2424
"//sessionctx/stmtctx",
2525
"//sessionctx/variable",
26-
"//statistics",
2726
"//store/copr",
2827
"//tablecodec",
2928
"//telemetry",
@@ -74,7 +73,6 @@ go_test(
7473
"//sessionctx",
7574
"//sessionctx/stmtctx",
7675
"//sessionctx/variable",
77-
"//statistics",
7876
"//store/copr",
7977
"//tablecodec",
8078
"//testkit/testsetup",

distsql/distsql.go

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ import (
2626
"github.com/pingcap/tidb/sessionctx"
2727
"github.com/pingcap/tidb/sessionctx/stmtctx"
2828
"github.com/pingcap/tidb/sessionctx/variable"
29-
"github.com/pingcap/tidb/statistics"
3029
"github.com/pingcap/tidb/types"
3130
"github.com/pingcap/tidb/util/logutil"
3231
"github.com/pingcap/tidb/util/tracing"
@@ -46,7 +45,6 @@ func GenSelectResultFromResponse(sctx sessionctx.Context, fieldTypes []*types.Fi
4645
rowLen: len(fieldTypes),
4746
fieldTypes: fieldTypes,
4847
ctx: sctx,
49-
feedback: statistics.NewQueryFeedback(0, nil, 0, false),
5048
copPlanIDs: planIDs,
5149
rootPlanID: rootID,
5250
storeType: kv.TiFlash,
@@ -55,7 +53,7 @@ func GenSelectResultFromResponse(sctx sessionctx.Context, fieldTypes []*types.Fi
5553

5654
// Select sends a DAG request, returns SelectResult.
5755
// In kvReq, KeyRanges is required, Concurrency/KeepOrder/Desc/IsolationLevel/Priority are optional.
58-
func Select(ctx context.Context, sctx sessionctx.Context, kvReq *kv.Request, fieldTypes []*types.FieldType, fb *statistics.QueryFeedback) (SelectResult, error) {
56+
func Select(ctx context.Context, sctx sessionctx.Context, kvReq *kv.Request, fieldTypes []*types.FieldType) (SelectResult, error) {
5957
r, ctx := tracing.StartRegionEx(ctx, "distsql.Select")
6058
defer r.End()
6159

@@ -109,7 +107,6 @@ func Select(ctx context.Context, sctx sessionctx.Context, kvReq *kv.Request, fie
109107
rowLen: len(fieldTypes),
110108
fieldTypes: fieldTypes,
111109
ctx: sctx,
112-
feedback: fb,
113110
sqlType: label,
114111
memTracker: kvReq.MemTracker,
115112
storeType: kvReq.StoreType,
@@ -144,8 +141,8 @@ func SetTiFlashConfVarsInContext(ctx context.Context, sctx sessionctx.Context) c
144141
// The difference from Select is that SelectWithRuntimeStats will set copPlanIDs into selectResult,
145142
// which can help selectResult to collect runtime stats.
146143
func SelectWithRuntimeStats(ctx context.Context, sctx sessionctx.Context, kvReq *kv.Request,
147-
fieldTypes []*types.FieldType, fb *statistics.QueryFeedback, copPlanIDs []int, rootPlanID int) (SelectResult, error) {
148-
sr, err := Select(ctx, sctx, kvReq, fieldTypes, fb)
144+
fieldTypes []*types.FieldType, copPlanIDs []int, rootPlanID int) (SelectResult, error) {
145+
sr, err := Select(ctx, sctx, kvReq, fieldTypes)
149146
if err != nil {
150147
return nil, err
151148
}
@@ -173,7 +170,6 @@ func Analyze(ctx context.Context, client kv.Client, kvReq *kv.Request, vars inte
173170
result := &selectResult{
174171
label: "analyze",
175172
resp: resp,
176-
feedback: statistics.NewQueryFeedback(0, nil, 0, false),
177173
sqlType: label,
178174
storeType: kvReq.StoreType,
179175
}
@@ -191,7 +187,6 @@ func Checksum(ctx context.Context, client kv.Client, kvReq *kv.Request, vars int
191187
result := &selectResult{
192188
label: "checksum",
193189
resp: resp,
194-
feedback: statistics.NewQueryFeedback(0, nil, 0, false),
195190
sqlType: metrics.LblGeneral,
196191
storeType: kvReq.StoreType,
197192
}

distsql/distsql_test.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ import (
2626
"github.com/pingcap/tidb/sessionctx"
2727
"github.com/pingcap/tidb/sessionctx/stmtctx"
2828
"github.com/pingcap/tidb/sessionctx/variable"
29-
"github.com/pingcap/tidb/statistics"
3029
"github.com/pingcap/tidb/types"
3130
"github.com/pingcap/tidb/util/chunk"
3231
"github.com/pingcap/tidb/util/codec"
@@ -338,7 +337,7 @@ func createSelectNormalByBenchmarkTest(batch, totalRows int, ctx sessionctx.Cont
338337

339338
// Test Next.
340339
var response SelectResult
341-
response, _ = Select(context.TODO(), ctx, request, colTypes, statistics.NewQueryFeedback(0, nil, 0, false))
340+
response, _ = Select(context.TODO(), ctx, request, colTypes)
342341

343342
result, _ := response.(*selectResult)
344343
resp, _ := result.resp.(*mockResponse)
@@ -413,9 +412,9 @@ func createSelectNormal(t *testing.T, batch, totalRows int, planIDs []int, sctx
413412
// Test Next.
414413
var response SelectResult
415414
if planIDs == nil {
416-
response, err = Select(context.TODO(), sctx, request, colTypes, statistics.NewQueryFeedback(0, nil, 0, false))
415+
response, err = Select(context.TODO(), sctx, request, colTypes)
417416
} else {
418-
response, err = SelectWithRuntimeStats(context.TODO(), sctx, request, colTypes, statistics.NewQueryFeedback(0, nil, 0, false), planIDs, 1)
417+
response, err = SelectWithRuntimeStats(context.TODO(), sctx, request, colTypes, planIDs, 1)
419418
}
420419

421420
require.NoError(t, err)

distsql/request_builder.go

Lines changed: 22 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ import (
2828
"github.com/pingcap/tidb/parser/mysql"
2929
"github.com/pingcap/tidb/sessionctx/stmtctx"
3030
"github.com/pingcap/tidb/sessionctx/variable"
31-
"github.com/pingcap/tidb/statistics"
3231
"github.com/pingcap/tidb/tablecodec"
3332
"github.com/pingcap/tidb/types"
3433
"github.com/pingcap/tidb/util/codec"
@@ -86,9 +85,9 @@ func (builder *RequestBuilder) SetMemTracker(tracker *memory.Tracker) *RequestBu
8685
// to "KeyRanges" firstly.
8786
// Note this function should be deleted or at least not exported, but currently
8887
// br refers it, so have to keep it.
89-
func (builder *RequestBuilder) SetTableRanges(tid int64, tableRanges []*ranger.Range, fb *statistics.QueryFeedback) *RequestBuilder {
88+
func (builder *RequestBuilder) SetTableRanges(tid int64, tableRanges []*ranger.Range) *RequestBuilder {
9089
if builder.err == nil {
91-
builder.Request.KeyRanges = kv.NewNonParitionedKeyRanges(TableRangesToKVRanges(tid, tableRanges, fb))
90+
builder.Request.KeyRanges = kv.NewNonParitionedKeyRanges(TableRangesToKVRanges(tid, tableRanges))
9291
}
9392
return builder
9493
}
@@ -97,7 +96,7 @@ func (builder *RequestBuilder) SetTableRanges(tid int64, tableRanges []*ranger.R
9796
// "ranges" to "KeyRanges" firstly.
9897
func (builder *RequestBuilder) SetIndexRanges(sc *stmtctx.StatementContext, tid, idxID int64, ranges []*ranger.Range) *RequestBuilder {
9998
if builder.err == nil {
100-
builder.Request.KeyRanges, builder.err = IndexRangesToKVRanges(sc, tid, idxID, ranges, nil)
99+
builder.Request.KeyRanges, builder.err = IndexRangesToKVRanges(sc, tid, idxID, ranges)
101100
}
102101
return builder
103102
}
@@ -106,24 +105,24 @@ func (builder *RequestBuilder) SetIndexRanges(sc *stmtctx.StatementContext, tid,
106105
// "ranges" to "KeyRanges" firstly.
107106
func (builder *RequestBuilder) SetIndexRangesForTables(sc *stmtctx.StatementContext, tids []int64, idxID int64, ranges []*ranger.Range) *RequestBuilder {
108107
if builder.err == nil {
109-
builder.Request.KeyRanges, builder.err = IndexRangesToKVRangesForTables(sc, tids, idxID, ranges, nil)
108+
builder.Request.KeyRanges, builder.err = IndexRangesToKVRangesForTables(sc, tids, idxID, ranges)
110109
}
111110
return builder
112111
}
113112

114113
// SetHandleRanges sets "KeyRanges" for "kv.Request" by converting table handle range
115114
// "ranges" to "KeyRanges" firstly.
116-
func (builder *RequestBuilder) SetHandleRanges(sc *stmtctx.StatementContext, tid int64, isCommonHandle bool, ranges []*ranger.Range, fb *statistics.QueryFeedback) *RequestBuilder {
117-
builder = builder.SetHandleRangesForTables(sc, []int64{tid}, isCommonHandle, ranges, fb)
115+
func (builder *RequestBuilder) SetHandleRanges(sc *stmtctx.StatementContext, tid int64, isCommonHandle bool, ranges []*ranger.Range) *RequestBuilder {
116+
builder = builder.SetHandleRangesForTables(sc, []int64{tid}, isCommonHandle, ranges)
118117
builder.err = builder.Request.KeyRanges.SetToNonPartitioned()
119118
return builder
120119
}
121120

122121
// SetHandleRangesForTables sets "KeyRanges" for "kv.Request" by converting table handle range
123122
// "ranges" to "KeyRanges" firstly for multiple tables.
124-
func (builder *RequestBuilder) SetHandleRangesForTables(sc *stmtctx.StatementContext, tid []int64, isCommonHandle bool, ranges []*ranger.Range, fb *statistics.QueryFeedback) *RequestBuilder {
123+
func (builder *RequestBuilder) SetHandleRangesForTables(sc *stmtctx.StatementContext, tid []int64, isCommonHandle bool, ranges []*ranger.Range) *RequestBuilder {
125124
if builder.err == nil {
126-
builder.Request.KeyRanges, builder.err = TableHandleRangesToKVRanges(sc, tid, isCommonHandle, ranges, fb)
125+
builder.Request.KeyRanges, builder.err = TableHandleRangesToKVRanges(sc, tid, isCommonHandle, ranges)
127126
}
128127
return builder
129128
}
@@ -435,55 +434,26 @@ func (builder *RequestBuilder) SetConnID(connID uint64) *RequestBuilder {
435434
}
436435

437436
// TableHandleRangesToKVRanges convert table handle ranges to "KeyRanges" for multiple tables.
438-
func TableHandleRangesToKVRanges(sc *stmtctx.StatementContext, tid []int64, isCommonHandle bool, ranges []*ranger.Range, fb *statistics.QueryFeedback) (*kv.KeyRanges, error) {
437+
func TableHandleRangesToKVRanges(sc *stmtctx.StatementContext, tid []int64, isCommonHandle bool, ranges []*ranger.Range) (*kv.KeyRanges, error) {
439438
if !isCommonHandle {
440-
return tablesRangesToKVRanges(tid, ranges, fb), nil
439+
return tablesRangesToKVRanges(tid, ranges), nil
441440
}
442441
return CommonHandleRangesToKVRanges(sc, tid, ranges)
443442
}
444443

445444
// TableRangesToKVRanges converts table ranges to "KeyRange".
446445
// Note this function should not be exported, but currently
447446
// br refers to it, so have to keep it.
448-
func TableRangesToKVRanges(tid int64, ranges []*ranger.Range, fb *statistics.QueryFeedback) []kv.KeyRange {
447+
func TableRangesToKVRanges(tid int64, ranges []*ranger.Range) []kv.KeyRange {
449448
if len(ranges) == 0 {
450449
return []kv.KeyRange{}
451450
}
452-
return tablesRangesToKVRanges([]int64{tid}, ranges, fb).FirstPartitionRange()
451+
return tablesRangesToKVRanges([]int64{tid}, ranges).FirstPartitionRange()
453452
}
454453

455454
// tablesRangesToKVRanges converts table ranges to "KeyRange".
456-
func tablesRangesToKVRanges(tids []int64, ranges []*ranger.Range, fb *statistics.QueryFeedback) *kv.KeyRanges {
457-
if fb == nil || fb.Hist == nil {
458-
return tableRangesToKVRangesWithoutSplit(tids, ranges)
459-
}
460-
// The following codes are deprecated since the feedback is deprecated.
461-
krs := make([]kv.KeyRange, 0, len(ranges))
462-
feedbackRanges := make([]*ranger.Range, 0, len(ranges))
463-
for _, ran := range ranges {
464-
low := codec.EncodeInt(nil, ran.LowVal[0].GetInt64())
465-
high := codec.EncodeInt(nil, ran.HighVal[0].GetInt64())
466-
if ran.LowExclude {
467-
low = kv.Key(low).PrefixNext()
468-
}
469-
// If this range is split by histogram, then the high val will equal to one bucket's upper bound,
470-
// since we need to guarantee each range falls inside the exactly one bucket, `PrefixNext` will make the
471-
// high value greater than upper bound, so we store the range here.
472-
r := &ranger.Range{LowVal: []types.Datum{types.NewBytesDatum(low)},
473-
HighVal: []types.Datum{types.NewBytesDatum(high)}, Collators: collate.GetBinaryCollatorSlice(1)}
474-
feedbackRanges = append(feedbackRanges, r)
475-
476-
if !ran.HighExclude {
477-
high = kv.Key(high).PrefixNext()
478-
}
479-
for _, tid := range tids {
480-
startKey := tablecodec.EncodeRowKey(tid, low)
481-
endKey := tablecodec.EncodeRowKey(tid, high)
482-
krs = append(krs, kv.KeyRange{StartKey: startKey, EndKey: endKey})
483-
}
484-
}
485-
fb.StoreRanges(feedbackRanges)
486-
return kv.NewNonParitionedKeyRanges(krs)
455+
func tablesRangesToKVRanges(tids []int64, ranges []*ranger.Range) *kv.KeyRanges {
456+
return tableRangesToKVRangesWithoutSplit(tids, ranges)
487457
}
488458

489459
func tableRangesToKVRangesWithoutSplit(tids []int64, ranges []*ranger.Range) *kv.KeyRanges {
@@ -656,14 +626,14 @@ func PartitionHandlesToKVRanges(handles []kv.Handle) ([]kv.KeyRange, []int) {
656626
}
657627

658628
// IndexRangesToKVRanges converts index ranges to "KeyRange".
659-
func IndexRangesToKVRanges(sc *stmtctx.StatementContext, tid, idxID int64, ranges []*ranger.Range, fb *statistics.QueryFeedback) (*kv.KeyRanges, error) {
660-
return IndexRangesToKVRangesWithInterruptSignal(sc, tid, idxID, ranges, fb, nil, nil)
629+
func IndexRangesToKVRanges(sc *stmtctx.StatementContext, tid, idxID int64, ranges []*ranger.Range) (*kv.KeyRanges, error) {
630+
return IndexRangesToKVRangesWithInterruptSignal(sc, tid, idxID, ranges, nil, nil)
661631
}
662632

663633
// IndexRangesToKVRangesWithInterruptSignal converts index ranges to "KeyRange".
664634
// The process can be interrupted by set `interruptSignal` to true.
665-
func IndexRangesToKVRangesWithInterruptSignal(sc *stmtctx.StatementContext, tid, idxID int64, ranges []*ranger.Range, fb *statistics.QueryFeedback, memTracker *memory.Tracker, interruptSignal *atomic.Value) (*kv.KeyRanges, error) {
666-
keyRanges, err := indexRangesToKVRangesForTablesWithInterruptSignal(sc, []int64{tid}, idxID, ranges, fb, memTracker, interruptSignal)
635+
func IndexRangesToKVRangesWithInterruptSignal(sc *stmtctx.StatementContext, tid, idxID int64, ranges []*ranger.Range, memTracker *memory.Tracker, interruptSignal *atomic.Value) (*kv.KeyRanges, error) {
636+
keyRanges, err := indexRangesToKVRangesForTablesWithInterruptSignal(sc, []int64{tid}, idxID, ranges, memTracker, interruptSignal)
667637
if err != nil {
668638
return nil, err
669639
}
@@ -672,52 +642,14 @@ func IndexRangesToKVRangesWithInterruptSignal(sc *stmtctx.StatementContext, tid,
672642
}
673643

674644
// IndexRangesToKVRangesForTables converts indexes ranges to "KeyRange".
675-
func IndexRangesToKVRangesForTables(sc *stmtctx.StatementContext, tids []int64, idxID int64, ranges []*ranger.Range, fb *statistics.QueryFeedback) (*kv.KeyRanges, error) {
676-
return indexRangesToKVRangesForTablesWithInterruptSignal(sc, tids, idxID, ranges, fb, nil, nil)
645+
func IndexRangesToKVRangesForTables(sc *stmtctx.StatementContext, tids []int64, idxID int64, ranges []*ranger.Range) (*kv.KeyRanges, error) {
646+
return indexRangesToKVRangesForTablesWithInterruptSignal(sc, tids, idxID, ranges, nil, nil)
677647
}
678648

679649
// IndexRangesToKVRangesForTablesWithInterruptSignal converts indexes ranges to "KeyRange".
680650
// The process can be interrupted by set `interruptSignal` to true.
681-
func indexRangesToKVRangesForTablesWithInterruptSignal(sc *stmtctx.StatementContext, tids []int64, idxID int64, ranges []*ranger.Range, fb *statistics.QueryFeedback, memTracker *memory.Tracker, interruptSignal *atomic.Value) (*kv.KeyRanges, error) {
682-
if fb == nil || fb.Hist == nil {
683-
return indexRangesToKVWithoutSplit(sc, tids, idxID, ranges, memTracker, interruptSignal)
684-
}
685-
// The following code is non maintained since the feedback deprecated.
686-
feedbackRanges := make([]*ranger.Range, 0, len(ranges))
687-
for _, ran := range ranges {
688-
low, high, err := EncodeIndexKey(sc, ran)
689-
if err != nil {
690-
return nil, err
691-
}
692-
feedbackRanges = append(feedbackRanges, &ranger.Range{LowVal: []types.Datum{types.NewBytesDatum(low)},
693-
HighVal: []types.Datum{types.NewBytesDatum(high)}, LowExclude: false, HighExclude: true, Collators: collate.GetBinaryCollatorSlice(1)})
694-
}
695-
feedbackRanges, ok := fb.Hist.SplitRange(sc, feedbackRanges, true)
696-
if !ok {
697-
fb.Invalidate()
698-
}
699-
krs := make([]kv.KeyRange, 0, len(feedbackRanges))
700-
for _, ran := range feedbackRanges {
701-
low, high := ran.LowVal[0].GetBytes(), ran.HighVal[0].GetBytes()
702-
if ran.LowExclude {
703-
low = kv.Key(low).PrefixNext()
704-
}
705-
ran.LowVal[0].SetBytes(low)
706-
// If this range is split by histogram, then the high val will equal to one bucket's upper bound,
707-
// since we need to guarantee each range falls inside the exactly one bucket, `PrefixNext` will make the
708-
// high value greater than upper bound, so we store the high value here.
709-
ran.HighVal[0].SetBytes(high)
710-
if !ran.HighExclude {
711-
high = kv.Key(high).PrefixNext()
712-
}
713-
for _, tid := range tids {
714-
startKey := tablecodec.EncodeIndexSeekKey(tid, idxID, low)
715-
endKey := tablecodec.EncodeIndexSeekKey(tid, idxID, high)
716-
krs = append(krs, kv.KeyRange{StartKey: startKey, EndKey: endKey})
717-
}
718-
}
719-
fb.StoreRanges(feedbackRanges)
720-
return kv.NewNonParitionedKeyRanges(krs), nil
651+
func indexRangesToKVRangesForTablesWithInterruptSignal(sc *stmtctx.StatementContext, tids []int64, idxID int64, ranges []*ranger.Range, memTracker *memory.Tracker, interruptSignal *atomic.Value) (*kv.KeyRanges, error) {
652+
return indexRangesToKVWithoutSplit(sc, tids, idxID, ranges, memTracker, interruptSignal)
721653
}
722654

723655
// CommonHandleRangesToKVRanges converts common handle ranges to "KeyRange".

0 commit comments

Comments
 (0)