Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/Ydb.Sdk/src/Ado/YdbDataReader.cs
Original file line number Diff line number Diff line change
Expand Up @@ -562,7 +562,7 @@ public override async Task CloseAsync()
}

ReaderMetadata = CloseMetadata.Instance;
var isConsumed = ReaderState == State.IsConsumed;
var isConsumed = ReaderState == State.IsConsumed || !await ReadAsync() && ReaderState == State.IsConsumed;
ReaderState = State.Close;

if (isConsumed)
Expand Down Expand Up @@ -595,7 +595,7 @@ private YdbValue GetFieldYdbValue(int ordinal)
: ydbValue;
}

private async Task<State> NextExecPart()
private async ValueTask<State> NextExecPart()
{
try
{
Expand Down
20 changes: 20 additions & 0 deletions src/Ydb.Sdk/tests/Ado/YdbTransactionTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,26 @@ public void Rollback_WhenUpsertThenRollback_ReturnPrevRow()
Assert.Equal(new DateTime(2008, 11, 21), ydbCommand.ExecuteScalar());
}

[Fact]
public void Commit_WhenUpdateWithYdbDataReader_ReturnUpdatedRow()
{
using var connection = CreateOpenConnection();
var ydbTransaction = connection.BeginTransaction();
var ydbCommand = new YdbCommand(connection)
{
CommandText = $@"UPDATE {Tables.Episodes} SET title=""test Episode 2""
WHERE series_id = 2 AND season_id = 5 AND episode_id = 1;"
};
var executeReaderAsync = ydbCommand.ExecuteReader();
executeReaderAsync.Close();
ydbTransaction.Commit();
Assert.Equal("test Episode 2", new YdbCommand(connection)
{
CommandText = $@"SELECT title FROM {Tables.Episodes}
WHERE series_id = 2 AND season_id = 5 AND episode_id = 1;"
}.ExecuteScalar());
}

[Fact]
public void Commit_WhenMakeTwoUpsertOperation_ReturnUpdatedTables()
{
Expand Down
Loading