Skip to content

Commit e276c39

Browse files
authored
Merge pull request #350 from ydb-platform/closed-result
early exit from NextResultSetErr
2 parents 6c007d3 + 7e7cd92 commit e276c39

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

internal/table/scanner/result.go

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import (
1515
"github.com/ydb-platform/ydb-go-sdk/v3/table/stats"
1616
)
1717

18-
var errAlreadyClosed = xerrors.Wrap(errors.New("result already closed"))
18+
var errAlreadyClosed = xerrors.Wrap(errors.New("result closed early"))
1919

2020
type baseResult struct {
2121
scanner
@@ -99,6 +99,9 @@ func (r *baseResult) Reset(set *Ydb.ResultSet, columnNames ...string) {
9999
}
100100

101101
func (r *unaryResult) NextResultSetErr(ctx context.Context, columns ...string) (err error) {
102+
if r.isClosed() {
103+
return xerrors.WithStackTrace(errAlreadyClosed)
104+
}
102105
if !r.HasNextResultSet() {
103106
return io.EOF
104107
}
@@ -113,10 +116,10 @@ func (r *unaryResult) NextResultSet(ctx context.Context, columns ...string) bool
113116

114117
func (r *streamResult) NextResultSetErr(ctx context.Context, columns ...string) (err error) {
115118
if r.isClosed() {
116-
if err = r.Err(); err != nil {
117-
return xerrors.WithStackTrace(err)
118-
}
119-
return io.EOF
119+
return xerrors.WithStackTrace(errAlreadyClosed)
120+
}
121+
if err = r.Err(); err != nil {
122+
return xerrors.WithStackTrace(err)
120123
}
121124
s, stats, err := r.recv(ctx)
122125
if err != nil {

0 commit comments

Comments
 (0)