Skip to content

Commit 1ec28dc

Browse files
fix
1 parent 9b90835 commit 1ec28dc

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed

src/Ydb.Sdk/src/Ado/Session/RetryableSession.cs

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using Ydb.Query;
2+
using Ydb.Sdk.Ado.Internal;
23
using Ydb.Sdk.Ado.RetryPolicy;
34

45
namespace Ydb.Sdk.Ado.Session;
@@ -82,20 +83,29 @@ public async Task<bool> MoveNextAsync(CancellationToken cancellationToken = defa
8283
return ++_iterator < _responses.Count;
8384
}
8485

85-
_responses = new List<ExecuteQueryResponsePart>();
86-
87-
return await _ydbRetryPolicyExecutor.ExecuteAsync(async ct =>
86+
_responses = await _ydbRetryPolicyExecutor.ExecuteAsync<List<ExecuteQueryResponsePart>>(async ct =>
8887
{
8988
using var session = await _sessionSource.OpenSession(ct);
9089

90+
var responses = new List<ExecuteQueryResponsePart>();
9191
var serverStream = await session.ExecuteQuery(_query, _parameters, _settings, null);
92+
9293
while (await serverStream.MoveNextAsync(ct))
9394
{
94-
_responses.Add(serverStream.Current);
95+
var current = serverStream.Current;
96+
97+
if (current.Status.IsNotSuccess())
98+
{
99+
throw YdbException.FromServer(current.Status, current.Issues);
100+
}
101+
102+
responses.Add(serverStream.Current);
95103
}
96104

97-
return _responses.Count > 0;
105+
return responses;
98106
}, cancellationToken);
107+
108+
return _responses.Count > 0;
99109
}
100110

101111
public ExecuteQueryResponsePart Current => _responses is not null && _iterator < _responses.Count

src/Ydb.Sdk/test/Ydb.Sdk.Ado.Tests/TestBase.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using Xunit;
2-
using Ydb.Sdk.Ado.RetryPolicy;
32
using Ydb.Sdk.Ado.Tests.Utils;
43

54
namespace Ydb.Sdk.Ado.Tests;

0 commit comments

Comments
 (0)