Skip to content

Commit c77a2e1

Browse files
committed
address AI comments
1 parent ab13c1f commit c77a2e1

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

pkg/distsql/select_result.go

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,11 @@ type selectResult struct {
352352
iter *selectResultIter
353353
}
354354

355-
func (r *selectResult) fetchResp(ctx context.Context, intermediateOutputTypes [][]*types.FieldType) error {
355+
func (r *selectResult) fetchResp(ctx context.Context) error {
356+
return r.fetchRespWithIntermediateResults(ctx, nil)
357+
}
358+
359+
func (r *selectResult) fetchRespWithIntermediateResults(ctx context.Context, intermediateOutputTypes [][]*types.FieldType) error {
356360
defer func() {
357361
if r.stats != nil {
358362
// Ignore internal sql.
@@ -474,7 +478,7 @@ func (r *selectResult) Next(ctx context.Context, chk *chunk.Chunk) error {
474478

475479
chk.Reset()
476480
if r.selectResp == nil || r.respChkIdx == len(r.selectResp.Chunks) {
477-
err := r.fetchResp(ctx, nil)
481+
err := r.fetchResp(ctx)
478482
if err != nil {
479483
return err
480484
}
@@ -526,7 +530,7 @@ func (r *selectResult) NextRaw(ctx context.Context) (data []byte, err error) {
526530
func (r *selectResult) readFromDefault(ctx context.Context, chk *chunk.Chunk) error {
527531
for !chk.IsFull() {
528532
if r.respChkIdx == len(r.selectResp.Chunks) {
529-
err := r.fetchResp(ctx, nil)
533+
err := r.fetchResp(ctx)
530534
if err != nil || r.selectResp == nil {
531535
return err
532536
}
@@ -552,7 +556,7 @@ func (r *selectResult) readFromChunk(ctx context.Context, chk *chunk.Chunk) erro
552556

553557
for !chk.IsFull() {
554558
if r.respChkIdx == len(r.selectResp.Chunks) {
555-
err := r.fetchResp(ctx, nil)
559+
err := r.fetchResp(ctx)
556560
if err != nil || r.selectResp == nil {
557561
return err
558562
}
@@ -909,7 +913,7 @@ func newSelectResultIter(result *selectResult, intermediateOutputTypes [][]*type
909913
func (iter *selectResultIter) Next(ctx context.Context) (SelectResultRow, error) {
910914
for {
911915
if r := iter.result; r.selectResp == nil {
912-
if err := r.fetchResp(ctx, iter.intermediateOutputTypes); err != nil {
916+
if err := r.fetchRespWithIntermediateResults(ctx, iter.intermediateOutputTypes); err != nil {
913917
return SelectResultRow{}, err
914918
}
915919

@@ -931,6 +935,9 @@ func (iter *selectResultIter) Next(ctx context.Context) (SelectResultRow, error)
931935
}
932936

933937
for len(iter.channels) > 0 {
938+
// here we read the channel in reverse order to make sure the "more complete" data should be read first.
939+
// For example, if a cop-request contains IndexLookUp, we should read the final rows first (with the biggest channel index),
940+
// and then read the index rows (with smaller channel index) that have not been looked up.
934941
lastPos := len(iter.channels) - 1
935942
channel := iter.channels[lastPos]
936943
row, err := channel.Next()

0 commit comments

Comments
 (0)