Skip to content

Commit 2aefaf3

Browse files
authored
Merge branch 'master' into transactions-topic-query
2 parents e0a097e + 8666a77 commit 2aefaf3

27 files changed

+248
-317
lines changed

.github/workflows/examples.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ jobs:
3333
options: '-h localhost'
3434
env:
3535
OS: ubuntu-latest
36+
GO: 1.22.x
3637
YDB_CONNECTION_STRING: grpc://localhost:2136/local
3738
YDB_ANONYMOUS_CREDENTIALS: 1
3839
YDB_VERSION: ${{ matrix.ydb-version }}

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
* Added traces and logs for read messages from topic within transaction
2+
* Removed experimental method `query.Result.Err()`
3+
* Added the finishing reading the grpc stream on `query.Result.Close()` call
4+
* Renamed experimental method `query.Result.Range()` to `query.Result.ResultSets()`
5+
* Renamed experimental method `query.ResultSet.Range()` to `query.ResultSet.Rows()`
26
* Removed support of `go1.20`
37
* Added PopMessages from topic within transaction
48

example_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ func Example_query() {
7777
}
7878
}
7979

80-
return res.Err() // return finally result error for auto-retry with driver
80+
return nil
8181
},
8282
query.WithIdempotent(),
8383
)

examples/basic/native/query/series.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ func read(ctx context.Context, c query.Client, prefix string) error {
4141
resultSet, err := result.NextResultSet(ctx)
4242
if err != nil {
4343
if errors.Is(err, io.EOF) {
44-
return result.Err()
44+
break
4545
}
4646

4747
return err
@@ -50,7 +50,7 @@ func read(ctx context.Context, c query.Client, prefix string) error {
5050
row, err := resultSet.NextRow(ctx)
5151
if err != nil {
5252
if errors.Is(err, io.EOF) {
53-
return result.Err()
53+
break
5454
}
5555

5656
return err
@@ -68,6 +68,8 @@ func read(ctx context.Context, c query.Client, prefix string) error {
6868
log.Printf("%+v", info)
6969
}
7070
}
71+
72+
return nil
7173
},
7274
)
7375
}

examples/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module examples
22

3-
go 1.21
3+
go 1.22
44

55
require (
66
github.com/golang-jwt/jwt/v4 v4.5.0

internal/query/client.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -243,10 +243,6 @@ func clientExecute(ctx context.Context,
243243
return xerrors.WithStackTrace(err)
244244
}
245245

246-
if err = r.Err(); err != nil {
247-
return xerrors.WithStackTrace(err)
248-
}
249-
250246
return nil
251247
})
252248
if err != nil {

internal/query/client_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -444,7 +444,6 @@ func TestClient(t *testing.T) {
444444
require.ErrorIs(t, err, io.EOF)
445445
require.Nil(t, r3)
446446
}
447-
require.NoError(t, r.Err())
448447
})
449448
})
450449
}

internal/query/errors.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ var (
1010
ErrTransactionRollingBack = xerrors.Wrap(errors.New("ydb: the transaction is rolling back"))
1111
ErrNotImplemented = errors.New("not implemented yet")
1212
errWrongNextResultSetIndex = errors.New("wrong result set index")
13-
errClosedResult = errors.New("result closed early")
1413
errWrongResultSetIndex = errors.New("critical violation of the logic - wrong result set index")
1514
errMoreThanOneRow = errors.New("unexpected more than one row in result set")
1615
errMoreThanOneResultSet = errors.New("unexpected more than one result set")

internal/query/execute_query.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,25 +52,25 @@ func queryFromText(
5252
return content
5353
}
5454

55-
func execute(ctx context.Context, s *Session, c Ydb_Query_V1.QueryServiceClient, q string, cfg executeConfig) (
55+
func execute(
56+
ctx context.Context, s *Session, c Ydb_Query_V1.QueryServiceClient, q string, cfg executeConfig, opts ...resultOption,
57+
) (
5658
_ *Transaction, _ *result, finalErr error,
5759
) {
5860
a := allocator.New()
5961
defer a.Free()
6062

6163
request, callOptions := executeQueryRequest(a, s.id, q, cfg)
6264

63-
executeCtx, cancelExecute := xcontext.WithCancel(xcontext.ValueOnly(ctx))
65+
executeCtx := xcontext.ValueOnly(ctx)
6466

6567
stream, err := c.ExecuteQuery(executeCtx, request, callOptions...)
6668
if err != nil {
6769
return nil, nil, xerrors.WithStackTrace(err)
6870
}
6971

70-
r, txID, err := newResult(ctx, stream, s.cfg.Trace(), cancelExecute)
72+
r, txID, err := newResult(ctx, stream, append(opts, withTrace(s.cfg.Trace()))...)
7173
if err != nil {
72-
cancelExecute()
73-
7474
return nil, nil, xerrors.WithStackTrace(err)
7575
}
7676

internal/query/execute_query_test.go

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -457,10 +457,8 @@ func TestExecute(t *testing.T) {
457457
{
458458
t.Log("nextResultSet")
459459
_, err := r.nextResultSet(context.Background())
460-
require.ErrorIs(t, err, errClosedResult)
460+
require.ErrorIs(t, err, io.EOF)
461461
}
462-
t.Log("check final error")
463-
require.NoError(t, r.Err())
464462
})
465463
t.Run("TransportError", func(t *testing.T) {
466464
t.Run("OnCall", func(t *testing.T) {
@@ -621,9 +619,6 @@ func TestExecute(t *testing.T) {
621619
require.True(t, xerrors.IsTransportError(err, grpcCodes.Unavailable))
622620
}
623621
}
624-
t.Log("check final error")
625-
require.Error(t, r.Err())
626-
require.True(t, xerrors.IsTransportError(r.Err(), grpcCodes.Unavailable))
627622
})
628623
})
629624
t.Run("OperationError", func(t *testing.T) {
@@ -749,9 +744,6 @@ func TestExecute(t *testing.T) {
749744
require.True(t, xerrors.IsOperationError(err, Ydb.StatusIds_UNAVAILABLE))
750745
}
751746
}
752-
t.Log("check final error")
753-
require.Error(t, r.Err())
754-
require.True(t, xerrors.IsOperationError(r.Err(), Ydb.StatusIds_UNAVAILABLE))
755747
})
756748
})
757749
}

0 commit comments

Comments
 (0)