Skip to content

Commit 20e830c

Browse files
committed
Eliminate temporary byte array when getting real server version.
1 parent cf2659e commit 20e830c

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed

src/MySqlConnector/Core/ServerSession.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1713,13 +1713,13 @@ private async Task GetRealServerDetailsAsync(IOBehavior ioBehavior, Cancellation
17131713

17141714
// first (and only) row
17151715
payload = await ReceiveReplyAsync(ioBehavior, CancellationToken.None).ConfigureAwait(false);
1716-
static void ReadRow(ReadOnlySpan<byte> span, out int? connectionId, out byte[]? serverVersion)
1716+
static void ReadRow(ReadOnlySpan<byte> span, out int? connectionId, out ServerVersion? serverVersion)
17171717
{
17181718
var reader = new ByteArrayReader(span);
17191719
var length = reader.ReadLengthEncodedIntegerOrNull();
17201720
connectionId = (length != -1 && Utf8Parser.TryParse(reader.ReadByteString(length), out int id, out _)) ? id : default(int?);
17211721
length = reader.ReadLengthEncodedIntegerOrNull();
1722-
serverVersion = length != -1 ? reader.ReadByteString(length).ToArray() : null;
1722+
serverVersion = length != -1 ? new ServerVersion(reader.ReadByteString(length)) : default;
17231723
}
17241724
ReadRow(payload.Span, out var connectionId, out var serverVersion);
17251725

@@ -1732,10 +1732,9 @@ static void ReadRow(ReadOnlySpan<byte> span, out int? connectionId, out byte[]?
17321732

17331733
if (connectionId.HasValue && serverVersion is not null)
17341734
{
1735-
var newServerVersion = new ServerVersion(serverVersion);
1736-
Log.Debug("Session{0} changing ConnectionIdOld {1} to ConnectionId {2} and ServerVersionOld {3} to ServerVersion {4}", m_logArguments[0], ConnectionId, connectionId.Value, ServerVersion.OriginalString, newServerVersion.OriginalString);
1735+
Log.Debug("Session{0} changing ConnectionIdOld {1} to ConnectionId {2} and ServerVersionOld {3} to ServerVersion {4}", m_logArguments[0], ConnectionId, connectionId.Value, ServerVersion.OriginalString, serverVersion.OriginalString);
17371736
ConnectionId = connectionId.Value;
1738-
ServerVersion = newServerVersion;
1737+
ServerVersion = serverVersion;
17391738
}
17401739
}
17411740
catch (MySqlException ex)

0 commit comments

Comments
 (0)