Skip to content

Commit 7b67025

Browse files
committed
Add config for enriching activity with read-result-set-header
Signed-off-by: Tobias Laving <[email protected]>
1 parent 158dce2 commit 7b67025

File tree

4 files changed

+22
-1
lines changed

4 files changed

+22
-1
lines changed

src/MySqlConnector/Core/ConnectionSettings.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ public ConnectionSettings(MySqlConnectionStringBuilder csb)
147147
UseAffectedRows = csb.UseAffectedRows;
148148
UseCompression = csb.UseCompression;
149149
UseXaTransactions = csb.UseXaTransactions;
150+
EnrichActivityWithReadResultSetHeader = csb.EnrichActivityWithReadResultSetHeader;
150151

151152
static int ToSigned(uint value) => value >= int.MaxValue ? int.MaxValue : (int) value;
152153
}
@@ -245,6 +246,7 @@ private static MySqlGuidFormat GetEffectiveGuidFormat(MySqlGuidFormat guidFormat
245246
public bool UseAffectedRows { get; }
246247
public bool UseCompression { get; }
247248
public bool UseXaTransactions { get; }
249+
public bool EnrichActivityWithReadResultSetHeader { get; }
248250

249251
public byte[]? ConnectionAttributes { get; set; }
250252

src/MySqlConnector/Core/ResultSet.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ public async Task ReadResultSetHeaderAsync(IOBehavior ioBehavior)
166166
ContainsCommandParameters = true;
167167
WarningCount = 0;
168168
State = ResultSetState.ReadResultSetHeader;
169-
if (DataReader.Activity is { IsAllDataRequested: true })
169+
if (DataReader.Activity is { IsAllDataRequested: true } && Connection.EnrichActivityWithReadResultSetHeader)
170170
DataReader.Activity.AddEvent(new ActivityEvent("read-result-set-header"));
171171
break;
172172
}

src/MySqlConnector/MySqlConnection.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1023,6 +1023,7 @@ internal void Cancel(ICancellableCommand command, int commandId, bool isCancel)
10231023
internal bool NoBackslashEscapes => GetInitializedConnectionSettings().NoBackslashEscapes;
10241024
internal bool TreatTinyAsBoolean => GetInitializedConnectionSettings().TreatTinyAsBoolean;
10251025
internal IOBehavior AsyncIOBehavior => GetConnectionSettings().ForceSynchronous ? IOBehavior.Synchronous : IOBehavior.Asynchronous;
1026+
internal bool EnrichActivityWithReadResultSetHeader => GetInitializedConnectionSettings().EnrichActivityWithReadResultSetHeader;
10261027

10271028
// Defaults to IOBehavior.Synchronous if the connection hasn't been opened yet; only use if it's a no-op for a closed connection.
10281029
internal IOBehavior SimpleAsyncIOBehavior => (m_connectionSettings?.ForceSynchronous is true) ? IOBehavior.Synchronous : IOBehavior.Asynchronous;

src/MySqlConnector/MySqlConnectionStringBuilder.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -800,6 +800,19 @@ public bool UseXaTransactions
800800
set => MySqlConnectionStringOption.UseXaTransactions.SetValue(this, value);
801801
}
802802

803+
/// <summary>
804+
/// Enrich Activity with read-result-set-header
805+
/// </summary>
806+
[Category("Other")]
807+
[DefaultValue(true)]
808+
[Description("Enriches Activity with read-result-set-header events.")]
809+
[DisplayName("Enrich Activity with read-result-set-header")]
810+
public bool EnrichActivityWithReadResultSetHeader
811+
{
812+
get => MySqlConnectionStringOption.EnrichActivityWithReadResultSetHeader.GetValue(this);
813+
set => MySqlConnectionStringOption.EnrichActivityWithReadResultSetHeader.SetValue(this, value);
814+
}
815+
803816
// Other Methods
804817

805818
/// <summary>
@@ -958,6 +971,7 @@ internal abstract partial class MySqlConnectionStringOption
958971
public static readonly MySqlConnectionStringValueOption<bool> UseAffectedRows;
959972
public static readonly MySqlConnectionStringValueOption<bool> UseCompression;
960973
public static readonly MySqlConnectionStringValueOption<bool> UseXaTransactions;
974+
public static readonly MySqlConnectionStringValueOption<bool> EnrichActivityWithReadResultSetHeader;
961975

962976
public static MySqlConnectionStringOption? TryGetOptionForKey(string key) =>
963977
s_options.TryGetValue(key, out var option) ? option : null;
@@ -1262,6 +1276,10 @@ static MySqlConnectionStringOption()
12621276
AddOption(options, UseXaTransactions = new(
12631277
keys: ["Use XA Transactions", "UseXaTransactions"],
12641278
defaultValue: true));
1279+
1280+
AddOption(options, EnrichActivityWithReadResultSetHeader = new(
1281+
keys: ["Enrich Activity with ReadResultSetHeader", "EnrichActivityWithReadResultSetHeader"],
1282+
defaultValue: true));
12651283
#pragma warning restore SA1118 // Parameter should not span multiple lines
12661284

12671285
#if NET8_0_OR_GREATER

0 commit comments

Comments
 (0)