Skip to content

Commit fc0af09

Browse files
committed
Don't close ctx prematurely for single row results
1 parent 204fe88 commit fc0af09

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

server/handler.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -550,6 +550,9 @@ func GetDeferredProjections(iter sql.RowIter) (sql.RowIter, []sql.Expression) {
550550
// resultForMax1RowIter ensures that an empty iterator returns at most one row
551551
func resultForMax1RowIter(ctx *sql.Context, schema sql.Schema, iter sql.RowIter, resultFields []*querypb.Field, buf *sql.ByteBuffer) (*sqltypes.Result, error) {
552552
defer trace.StartRegion(ctx, "Handler.resultForMax1RowIter").End()
553+
554+
defer iter.Close(ctx)
555+
553556
row, err := iter.Next(ctx)
554557
if err == io.EOF {
555558
return &sqltypes.Result{Fields: resultFields}, nil
@@ -560,9 +563,7 @@ func resultForMax1RowIter(ctx *sql.Context, schema sql.Schema, iter sql.RowIter,
560563
if _, err = iter.Next(ctx); err != io.EOF {
561564
return nil, fmt.Errorf("result max1Row iterator returned more than one row")
562565
}
563-
if err := iter.Close(ctx); err != nil {
564-
return nil, err
565-
}
566+
566567
outputRow, err := RowToSQL(ctx, schema, row, nil, buf)
567568
if err != nil {
568569
return nil, err

0 commit comments

Comments
 (0)