Skip to content

Commit 2587b07

Browse files
committed
removed implicit Close of result
1 parent ea3ad13 commit 2587b07

File tree

8 files changed

+42
-56
lines changed

8 files changed

+42
-56
lines changed

examples/basic/native/query/series.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,14 @@ import (
1616
func read(ctx context.Context, c query.Client, prefix string) error {
1717
return c.Do(ctx,
1818
func(ctx context.Context, s query.Session) (err error) {
19-
result, err := s.Query(ctx, fmt.Sprintf(`
19+
result, err := s.Query(ctx, `
2020
SELECT
2121
series_id,
2222
title,
2323
release_date
2424
FROM
2525
series
26-
`, prefix),
27-
query.WithTxControl(query.TxControl(query.BeginTx(query.WithOnlineReadOnly()))),
26+
`, query.WithTxControl(query.TxControl(query.BeginTx(query.WithSnapshotReadOnly()))),
2827
)
2928
if err != nil {
3029
return err

internal/query/client.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package query
22

33
import (
44
"context"
5-
"github.com/ydb-platform/ydb-go-sdk/v3/internal/query/result"
65
"time"
76

87
"github.com/ydb-platform/ydb-go-genproto/Ydb_Query_V1"
@@ -16,6 +15,7 @@ import (
1615
"github.com/ydb-platform/ydb-go-sdk/v3/internal/pool"
1716
"github.com/ydb-platform/ydb-go-sdk/v3/internal/query/config"
1817
"github.com/ydb-platform/ydb-go-sdk/v3/internal/query/options"
18+
"github.com/ydb-platform/ydb-go-sdk/v3/internal/query/result"
1919
"github.com/ydb-platform/ydb-go-sdk/v3/internal/stack"
2020
"github.com/ydb-platform/ydb-go-sdk/v3/internal/types"
2121
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xcontext"

internal/query/execute_query.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -144,10 +144,6 @@ func readAll(ctx context.Context, r *streamResult) error {
144144
}
145145

146146
func readResultSet(ctx context.Context, r *streamResult) (_ *resultSetWithClose, finalErr error) {
147-
defer func() {
148-
_ = r.Close(ctx)
149-
}()
150-
151147
rs, err := r.nextResultSet(ctx)
152148
if err != nil {
153149
return nil, xerrors.WithStackTrace(err)

internal/query/range_experiment.go

Lines changed: 0 additions & 44 deletions
This file was deleted.

internal/query/result.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,23 @@ type (
4242
resultOption func(s *streamResult)
4343
)
4444

45+
func rangeResultSets(ctx context.Context, r result.Result) xiter.Seq2[result.Set, error] {
46+
return func(yield func(result.Set, error) bool) {
47+
for {
48+
rs, err := r.NextResultSet(ctx)
49+
if err != nil {
50+
if xerrors.Is(err, io.EOF) {
51+
return
52+
}
53+
}
54+
cont := yield(rs, err)
55+
if !cont || err != nil {
56+
return
57+
}
58+
}
59+
}
60+
}
61+
4562
func (r *materializedResult) ResultSets(ctx context.Context) xiter.Seq2[result.Set, error] {
4663
return rangeResultSets(ctx, r)
4764
}

internal/query/result_set.go

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"github.com/ydb-platform/ydb-go-genproto/protos/Ydb"
99
"github.com/ydb-platform/ydb-go-genproto/protos/Ydb_Query"
1010

11+
"github.com/ydb-platform/ydb-go-sdk/v3/internal/query/result"
1112
"github.com/ydb-platform/ydb-go-sdk/v3/internal/types"
1213
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xerrors"
1314
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xiter"
@@ -41,6 +42,23 @@ type (
4142
}
4243
)
4344

45+
func rangeRows(ctx context.Context, rs result.Set) xiter.Seq2[result.Row, error] {
46+
return func(yield func(result.Row, error) bool) {
47+
for {
48+
rs, err := rs.NextRow(ctx)
49+
if err != nil {
50+
if xerrors.Is(err, io.EOF) {
51+
return
52+
}
53+
}
54+
cont := yield(rs, err)
55+
if !cont || err != nil {
56+
return
57+
}
58+
}
59+
}
60+
}
61+
4462
func (*materializedResultSet) Close(context.Context) error {
4563
return nil
4664
}
@@ -49,11 +67,11 @@ func (rs *resultSetWithClose) Close(ctx context.Context) error {
4967
return rs.close(ctx)
5068
}
5169

52-
func (rs *materializedResultSet) Rows(ctx context.Context) xiter.Seq2[query.Row, error] {
70+
func (rs *materializedResultSet) Rows(ctx context.Context) xiter.Seq2[result.Row, error] {
5371
return rangeRows(ctx, rs)
5472
}
5573

56-
func (rs *resultSet) Rows(ctx context.Context) xiter.Seq2[query.Row, error] {
74+
func (rs *resultSet) Rows(ctx context.Context) xiter.Seq2[result.Row, error] {
5775
return rangeRows(ctx, rs)
5876
}
5977

internal/query/session.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@ package query
22

33
import (
44
"context"
5-
"github.com/ydb-platform/ydb-go-sdk/v3/internal/query/result"
65
"sync/atomic"
76

87
"github.com/ydb-platform/ydb-go-genproto/Ydb_Query_V1"
98
"github.com/ydb-platform/ydb-go-genproto/protos/Ydb_Query"
109

1110
"github.com/ydb-platform/ydb-go-sdk/v3/internal/query/config"
1211
"github.com/ydb-platform/ydb-go-sdk/v3/internal/query/options"
12+
"github.com/ydb-platform/ydb-go-sdk/v3/internal/query/result"
1313
"github.com/ydb-platform/ydb-go-sdk/v3/internal/stack"
1414
"github.com/ydb-platform/ydb-go-sdk/v3/internal/tx"
1515
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xcontext"

internal/query/transaction.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ package query
33
import (
44
"context"
55
"fmt"
6-
"github.com/ydb-platform/ydb-go-sdk/v3/internal/query/result"
76

87
"github.com/ydb-platform/ydb-go-genproto/Ydb_Query_V1"
98
"github.com/ydb-platform/ydb-go-genproto/protos/Ydb"
109
"github.com/ydb-platform/ydb-go-genproto/protos/Ydb_Query"
1110

1211
"github.com/ydb-platform/ydb-go-sdk/v3/internal/allocator"
1312
"github.com/ydb-platform/ydb-go-sdk/v3/internal/query/options"
13+
"github.com/ydb-platform/ydb-go-sdk/v3/internal/query/result"
1414
queryTx "github.com/ydb-platform/ydb-go-sdk/v3/internal/query/tx"
1515
"github.com/ydb-platform/ydb-go-sdk/v3/internal/stack"
1616
baseTx "github.com/ydb-platform/ydb-go-sdk/v3/internal/tx"

0 commit comments

Comments
 (0)