Skip to content

Commit 43e6da8

Browse files
committed
Move CreateStatementPreparerOptions to MySqlCommand.
Signed-off-by: Bradley Grainger <[email protected]>
1 parent 837e103 commit 43e6da8

File tree

2 files changed

+35
-30
lines changed

2 files changed

+35
-30
lines changed

src/MySqlConnector/Core/TextCommandExecutor.cs

Lines changed: 1 addition & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -53,36 +53,7 @@ public virtual async Task<DbDataReader> ExecuteReaderAsync(string commandText, M
5353

5454
private PayloadData CreateQueryPayload(string commandText, MySqlParameterCollection parameterCollection)
5555
{
56-
var statementPreparerOptions = StatementPreparerOptions.None;
57-
if (m_command.Connection.AllowUserVariables || m_command.CommandType == CommandType.StoredProcedure)
58-
statementPreparerOptions |= StatementPreparerOptions.AllowUserVariables;
59-
if (m_command.Connection.DateTimeKind == DateTimeKind.Utc)
60-
statementPreparerOptions |= StatementPreparerOptions.DateTimeUtc;
61-
else if (m_command.Connection.DateTimeKind == DateTimeKind.Local)
62-
statementPreparerOptions |= StatementPreparerOptions.DateTimeLocal;
63-
if (m_command.CommandType == CommandType.StoredProcedure)
64-
statementPreparerOptions |= StatementPreparerOptions.AllowOutputParameters;
65-
66-
switch (m_command.Connection.GuidFormat)
67-
{
68-
case MySqlGuidFormat.Char36:
69-
statementPreparerOptions |= StatementPreparerOptions.GuidFormatChar36;
70-
break;
71-
case MySqlGuidFormat.Char32:
72-
statementPreparerOptions |= StatementPreparerOptions.GuidFormatChar32;
73-
break;
74-
case MySqlGuidFormat.Binary16:
75-
statementPreparerOptions |= StatementPreparerOptions.GuidFormatBinary16;
76-
break;
77-
case MySqlGuidFormat.TimeSwapBinary16:
78-
statementPreparerOptions |= StatementPreparerOptions.GuidFormatTimeSwapBinary16;
79-
break;
80-
case MySqlGuidFormat.LittleEndianBinary16:
81-
statementPreparerOptions |= StatementPreparerOptions.GuidFormatLittleEndianBinary16;
82-
break;
83-
}
84-
85-
var preparer = new StatementPreparer(commandText, parameterCollection, statementPreparerOptions);
56+
var preparer = new StatementPreparer(commandText, parameterCollection, m_command.CreateStatementPreparerOptions());
8657
return new PayloadData(preparer.ParseAndBindParameters(), isPooled: true);
8758
}
8859

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

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,40 @@ internal void ResetCommandTimeout()
267267
Connection?.Session?.SetTimeout(commandTimeout == 0 ? Constants.InfiniteTimeout : commandTimeout * 1000);
268268
}
269269

270+
internal StatementPreparerOptions CreateStatementPreparerOptions()
271+
{
272+
var statementPreparerOptions = StatementPreparerOptions.None;
273+
if (Connection.AllowUserVariables || CommandType == CommandType.StoredProcedure)
274+
statementPreparerOptions |= StatementPreparerOptions.AllowUserVariables;
275+
if (Connection.DateTimeKind == DateTimeKind.Utc)
276+
statementPreparerOptions |= StatementPreparerOptions.DateTimeUtc;
277+
else if (Connection.DateTimeKind == DateTimeKind.Local)
278+
statementPreparerOptions |= StatementPreparerOptions.DateTimeLocal;
279+
if (CommandType == CommandType.StoredProcedure)
280+
statementPreparerOptions |= StatementPreparerOptions.AllowOutputParameters;
281+
282+
switch (Connection.GuidFormat)
283+
{
284+
case MySqlGuidFormat.Char36:
285+
statementPreparerOptions |= StatementPreparerOptions.GuidFormatChar36;
286+
break;
287+
case MySqlGuidFormat.Char32:
288+
statementPreparerOptions |= StatementPreparerOptions.GuidFormatChar32;
289+
break;
290+
case MySqlGuidFormat.Binary16:
291+
statementPreparerOptions |= StatementPreparerOptions.GuidFormatBinary16;
292+
break;
293+
case MySqlGuidFormat.TimeSwapBinary16:
294+
statementPreparerOptions |= StatementPreparerOptions.GuidFormatTimeSwapBinary16;
295+
break;
296+
case MySqlGuidFormat.LittleEndianBinary16:
297+
statementPreparerOptions |= StatementPreparerOptions.GuidFormatLittleEndianBinary16;
298+
break;
299+
}
300+
301+
return statementPreparerOptions;
302+
}
303+
270304
private IOBehavior AsyncIOBehavior => Connection?.AsyncIOBehavior ?? IOBehavior.Asynchronous;
271305

272306
private void VerifyNotDisposed()

0 commit comments

Comments
 (0)