Skip to content

Commit 2099f0b

Browse files
Check readers before initiating a new MySql batch.
Fixes #1605.
1 parent 2965228 commit 2099f0b

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

src/NHibernate/AdoNet/MySqlClientBatchingBatcher.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@ protected override int CountOfStatementsInCurrentBatch
3939

4040
public override void AddToBatch(IExpectation expectation)
4141
{
42+
// MySql batcher cannot be initiated if a data reader is still open: check them.
43+
if (CountOfStatementsInCurrentBatch == 0)
44+
CheckReaders();
45+
4246
totalExpectedRowsAffected += expectation.ExpectedRowCount;
4347
var batchUpdate = CurrentCommand;
4448
Prepare(batchUpdate);

src/NHibernate/Async/AdoNet/MySqlClientBatchingBatcher.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ public partial class MySqlClientBatchingBatcher : AbstractBatcher
2424
public override async Task AddToBatchAsync(IExpectation expectation, CancellationToken cancellationToken)
2525
{
2626
cancellationToken.ThrowIfCancellationRequested();
27+
// MySql batcher cannot be initiated if a data reader is still open: check them.
28+
if (CountOfStatementsInCurrentBatch == 0)
29+
await (CheckReadersAsync(cancellationToken)).ConfigureAwait(false);
30+
2731
totalExpectedRowsAffected += expectation.ExpectedRowCount;
2832
var batchUpdate = CurrentCommand;
2933
await (PrepareAsync(batchUpdate, cancellationToken)).ConfigureAwait(false);

0 commit comments

Comments
 (0)