Skip to content

Commit 01b7e5c

Browse files
committed
Move standard implementations back to MySqlCommand.
These were moved to ICommandExecutor in 16d2c99, but don't need to support customised implementations.
1 parent bf299f8 commit 01b7e5c

File tree

3 files changed

+36
-56
lines changed

3 files changed

+36
-56
lines changed

src/MySqlConnector/Core/ICommandExecutor.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,6 @@ namespace MySqlConnector.Core
99
{
1010
internal interface ICommandExecutor
1111
{
12-
Task<int> ExecuteNonQueryAsync(string commandText, MySqlParameterCollection parameterCollection, IOBehavior ioBehavior, CancellationToken cancellationToken);
13-
14-
Task<object> ExecuteScalarAsync(string commandText, MySqlParameterCollection parameterCollection, IOBehavior ioBehavior, CancellationToken cancellationToken);
15-
1612
Task<DbDataReader> ExecuteReaderAsync(string commandText, MySqlParameterCollection parameterCollection, CommandBehavior behavior, IOBehavior ioBehavior, CancellationToken cancellationToken);
1713
}
1814
}

src/MySqlConnector/Core/TextCommandExecutor.cs

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -20,42 +20,6 @@ internal TextCommandExecutor(MySqlCommand command)
2020
m_command = command;
2121
}
2222

23-
public virtual async Task<int> ExecuteNonQueryAsync(string commandText, MySqlParameterCollection parameterCollection,
24-
IOBehavior ioBehavior, CancellationToken cancellationToken)
25-
{
26-
using (var reader = (MySqlDataReader) await ExecuteReaderAsync(commandText, parameterCollection, CommandBehavior.Default, ioBehavior, cancellationToken).ConfigureAwait(false))
27-
{
28-
do
29-
{
30-
while (await reader.ReadAsync(ioBehavior, cancellationToken).ConfigureAwait(false))
31-
{
32-
}
33-
} while (await reader.NextResultAsync(ioBehavior, cancellationToken).ConfigureAwait(false));
34-
return reader.RecordsAffected;
35-
}
36-
}
37-
38-
public virtual async Task<object> ExecuteScalarAsync(string commandText, MySqlParameterCollection parameterCollection,
39-
IOBehavior ioBehavior, CancellationToken cancellationToken)
40-
{
41-
var hasSetResult = false;
42-
object result = null;
43-
using (var reader = (MySqlDataReader) await ExecuteReaderAsync(commandText, parameterCollection, CommandBehavior.SingleResult | CommandBehavior.SingleRow, ioBehavior, cancellationToken).ConfigureAwait(false))
44-
{
45-
do
46-
{
47-
var hasResult = await reader.ReadAsync(ioBehavior, cancellationToken).ConfigureAwait(false);
48-
if (!hasSetResult)
49-
{
50-
if (hasResult)
51-
result = reader.GetValue(0);
52-
hasSetResult = true;
53-
}
54-
} while (await reader.NextResultAsync(ioBehavior, cancellationToken).ConfigureAwait(false));
55-
}
56-
return result;
57-
}
58-
5923
public virtual async Task<DbDataReader> ExecuteReaderAsync(string commandText, MySqlParameterCollection parameterCollection,
6024
CommandBehavior behavior, IOBehavior ioBehavior, CancellationToken cancellationToken)
6125
{

src/MySqlConnector/MySql.Data.MySqlClient/MySqlCommand.cs

Lines changed: 36 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -54,17 +54,9 @@ public MySqlCommand(string commandText, MySqlConnection connection, MySqlTransac
5454

5555
public override void Cancel() => Connection.Cancel(this);
5656

57-
public override int ExecuteNonQuery()
58-
{
59-
ResetCommandTimeout();
60-
return ExecuteNonQueryAsync(IOBehavior.Synchronous, CancellationToken.None).GetAwaiter().GetResult();
61-
}
57+
public override int ExecuteNonQuery() => ExecuteNonQueryAsync(IOBehavior.Synchronous, CancellationToken.None).GetAwaiter().GetResult();
6258

63-
public override object ExecuteScalar()
64-
{
65-
ResetCommandTimeout();
66-
return ExecuteScalarAsync(IOBehavior.Synchronous, CancellationToken.None).GetAwaiter().GetResult();
67-
}
59+
public override object ExecuteScalar() => ExecuteScalarAsync(IOBehavior.Synchronous, CancellationToken.None).GetAwaiter().GetResult();
6860

6961
public new MySqlDataReader ExecuteReader() => (MySqlDataReader) base.ExecuteReader();
7062

@@ -174,16 +166,44 @@ protected override DbDataReader ExecuteDbDataReader(CommandBehavior behavior)
174166
public override Task<int> ExecuteNonQueryAsync(CancellationToken cancellationToken) =>
175167
ExecuteNonQueryAsync(AsyncIOBehavior, cancellationToken);
176168

177-
internal Task<int> ExecuteNonQueryAsync(IOBehavior ioBehavior, CancellationToken cancellationToken) =>
178-
!IsValid(out var exception) ? Utility.TaskFromException<int>(exception) :
179-
m_commandExecutor.ExecuteNonQueryAsync(CommandText, m_parameterCollection, ioBehavior, cancellationToken);
169+
internal async Task<int> ExecuteNonQueryAsync(IOBehavior ioBehavior, CancellationToken cancellationToken)
170+
{
171+
ResetCommandTimeout();
172+
using (var reader = (MySqlDataReader) await ExecuteReaderAsync(CommandBehavior.Default, ioBehavior, cancellationToken).ConfigureAwait(false))
173+
{
174+
do
175+
{
176+
while (await reader.ReadAsync(ioBehavior, cancellationToken).ConfigureAwait(false))
177+
{
178+
}
179+
} while (await reader.NextResultAsync(ioBehavior, cancellationToken).ConfigureAwait(false));
180+
return reader.RecordsAffected;
181+
}
182+
}
180183

181184
public override Task<object> ExecuteScalarAsync(CancellationToken cancellationToken) =>
182185
ExecuteScalarAsync(AsyncIOBehavior, cancellationToken);
183186

184-
internal Task<object> ExecuteScalarAsync(IOBehavior ioBehavior, CancellationToken cancellationToken) =>
185-
!IsValid(out var exception) ? Utility.TaskFromException<object>(exception) :
186-
m_commandExecutor.ExecuteScalarAsync(CommandText, m_parameterCollection, ioBehavior, cancellationToken);
187+
internal async Task<object> ExecuteScalarAsync(IOBehavior ioBehavior, CancellationToken cancellationToken)
188+
{
189+
ResetCommandTimeout();
190+
var hasSetResult = false;
191+
object result = null;
192+
using (var reader = (MySqlDataReader) await ExecuteReaderAsync(CommandBehavior.SingleResult | CommandBehavior.SingleRow, ioBehavior, cancellationToken).ConfigureAwait(false))
193+
{
194+
do
195+
{
196+
var hasResult = await reader.ReadAsync(ioBehavior, cancellationToken).ConfigureAwait(false);
197+
if (!hasSetResult)
198+
{
199+
if (hasResult)
200+
result = reader.GetValue(0);
201+
hasSetResult = true;
202+
}
203+
} while (await reader.NextResultAsync(ioBehavior, cancellationToken).ConfigureAwait(false));
204+
}
205+
return result;
206+
}
187207

188208
protected override Task<DbDataReader> ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
189209
{

0 commit comments

Comments
 (0)