Skip to content

Commit bdb80a3

Browse files
feat: invoke ReadAsync() on CloseAsync
1 parent 505f804 commit bdb80a3

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

src/Ydb.Sdk/src/Ado/YdbDataReader.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -562,7 +562,7 @@ public override async Task CloseAsync()
562562
}
563563

564564
ReaderMetadata = CloseMetadata.Instance;
565-
var isConsumed = ReaderState == State.IsConsumed;
565+
var isConsumed = ReaderState == State.IsConsumed || !await ReadAsync() && ReaderState == State.IsConsumed;
566566
ReaderState = State.Close;
567567

568568
if (isConsumed)
@@ -595,7 +595,7 @@ private YdbValue GetFieldYdbValue(int ordinal)
595595
: ydbValue;
596596
}
597597

598-
private async Task<State> NextExecPart()
598+
private async ValueTask<State> NextExecPart()
599599
{
600600
try
601601
{

src/Ydb.Sdk/tests/Ado/YdbTransactionTests.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,26 @@ public void Rollback_WhenUpsertThenRollback_ReturnPrevRow()
4242
Assert.Equal(new DateTime(2008, 11, 21), ydbCommand.ExecuteScalar());
4343
}
4444

45+
[Fact]
46+
public void Commit_WhenUpdateWithYdbDataReader_ReturnUpdatedRow()
47+
{
48+
using var connection = CreateOpenConnection();
49+
var ydbTransaction = connection.BeginTransaction();
50+
var ydbCommand = new YdbCommand(connection)
51+
{
52+
CommandText = $@"UPDATE {Tables.Episodes} SET title=""test Episode 2""
53+
WHERE series_id = 2 AND season_id = 5 AND episode_id = 1;"
54+
};
55+
var executeReaderAsync = ydbCommand.ExecuteReader();
56+
executeReaderAsync.Close();
57+
ydbTransaction.Commit();
58+
Assert.Equal("test Episode 2", new YdbCommand(connection)
59+
{
60+
CommandText = $@"SELECT title FROM {Tables.Episodes}
61+
WHERE series_id = 2 AND season_id = 5 AND episode_id = 1;"
62+
}.ExecuteScalar());
63+
}
64+
4565
[Fact]
4666
public void Commit_WhenMakeTwoUpsertOperation_ReturnUpdatedTables()
4767
{

0 commit comments

Comments
 (0)