Skip to content

Commit c058fc5

Browse files
committed
Elliminated some linq queries and allocations
1 parent 3a1e3ce commit c058fc5

File tree

4 files changed

+20
-12
lines changed

4 files changed

+20
-12
lines changed

src/FirebirdSql.Data.FirebirdClient/Client/Managed/GdsConnection.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ public void Identify(string database)
216216
break;
217217
}
218218

219-
if (AuthBlock.ServerKeys.Any())
219+
if (AuthBlock.ServerKeys.Length > 0)
220220
{
221221
AuthBlock.SendWireCryptToBuffer();
222222
Xdr.Flush();
@@ -330,7 +330,7 @@ await Xdr.ReadBooleanAsync(cancellationToken).ConfigureAwait(false),
330330
break;
331331
}
332332

333-
if (AuthBlock.ServerKeys.Any())
333+
if (AuthBlock.ServerKeys.Length > 0)
334334
{
335335
await AuthBlock.SendWireCryptToBufferAsync(cancellationToken).ConfigureAwait(false);
336336
await Xdr.FlushAsync(cancellationToken).ConfigureAwait(false);

src/FirebirdSql.Data.FirebirdClient/Client/Managed/Version13/GdsDatabase.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public override void Attach(DatabaseParameterBufferBase dpb, string database, by
5151
var genericResponse = (GenericResponse)response;
5252
ProcessAttachResponse(genericResponse);
5353

54-
if (genericResponse.Data.Any())
54+
if (genericResponse.Data.Length > 0)
5555
{
5656
AuthBlock.SendWireCryptToBuffer();
5757
Xdr.Flush();
@@ -100,7 +100,7 @@ public override async ValueTask AttachAsync(DatabaseParameterBufferBase dpb, str
100100
var genericResponse = (GenericResponse)response;
101101
await ProcessAttachResponseAsync(genericResponse, cancellationToken).ConfigureAwait(false);
102102

103-
if (genericResponse.Data.Any())
103+
if (genericResponse.Data.Length > 0)
104104
{
105105
await AuthBlock.SendWireCryptToBufferAsync(cancellationToken).ConfigureAwait(false);
106106
await Xdr.FlushAsync(cancellationToken).ConfigureAwait(false);
@@ -183,7 +183,7 @@ public override void CreateDatabase(DatabaseParameterBufferBase dpb, string data
183183
var genericResponse = (GenericResponse)response;
184184
ProcessCreateResponse(genericResponse);
185185

186-
if (genericResponse.Data.Any())
186+
if (genericResponse.Data.Length > 0)
187187
{
188188
AuthBlock.SendWireCryptToBuffer();
189189
Xdr.Flush();
@@ -223,7 +223,7 @@ public override async ValueTask CreateDatabaseAsync(DatabaseParameterBufferBase
223223
var genericResponse = (GenericResponse)response;
224224
await ProcessCreateResponseAsync(genericResponse, cancellationToken).ConfigureAwait(false);
225225

226-
if (genericResponse.Data.Any())
226+
if (genericResponse.Data.Length > 0)
227227
{
228228
await AuthBlock.SendWireCryptToBufferAsync(cancellationToken).ConfigureAwait(false);
229229
await Xdr.FlushAsync(cancellationToken).ConfigureAwait(false);

src/FirebirdSql.Data.FirebirdClient/Client/Managed/Version13/GdsServiceManager.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public override void Attach(ServiceParameterBufferBase spb, string dataSource, i
5252
var genericResponse = (GenericResponse)response;
5353
base.ProcessAttachResponse(genericResponse);
5454

55-
if (genericResponse.Data.Any())
55+
if (genericResponse.Data.Length > 0)
5656
{
5757
Database.AuthBlock.SendWireCryptToBuffer();
5858
Database.Xdr.Flush();
@@ -98,7 +98,7 @@ public override async ValueTask AttachAsync(ServiceParameterBufferBase spb, stri
9898
var genericResponse = (GenericResponse)response;
9999
await base.ProcessAttachResponseAsync(genericResponse, cancellationToken).ConfigureAwait(false);
100100

101-
if (genericResponse.Data.Any())
101+
if (genericResponse.Data.Length > 0)
102102
{
103103
await Database.AuthBlock.SendWireCryptToBufferAsync(cancellationToken).ConfigureAwait(false);
104104
await Database.Xdr.FlushAsync(cancellationToken).ConfigureAwait(false);

src/FirebirdSql.Data.FirebirdClient/Client/Managed/Version16/GdsBatch.cs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -145,13 +145,21 @@ public override async ValueTask<ExecuteResultItem[]> ExecuteAsync(int count, IDe
145145

146146
public override int ComputeBatchSize(int count, IDescriptorFiller descriptorFiller)
147147
{
148-
var parametersData = GetParametersData(count, descriptorFiller);
149-
return parametersData.Sum(x => x.Length);
148+
var total = 0;
149+
for(var i = 0; i < count; i++) {
150+
var item = _statement.GetParameterData(descriptorFiller, i);
151+
total += item.Length;
152+
}
153+
return total;
150154
}
151155
public override async ValueTask<int> ComputeBatchSizeAsync(int count, IDescriptorFiller descriptorFiller, CancellationToken cancellationToken = default)
152156
{
153-
var parametersData = await GetParametersDataAsync(count, descriptorFiller, cancellationToken).ConfigureAwait(false);
154-
return parametersData.Sum(x => x.Length);
157+
var total = 0;
158+
for(var i = 0; i < count; i++) {
159+
var item = await _statement.GetParameterDataAsync(descriptorFiller, i, cancellationToken).ConfigureAwait(false);
160+
total += item.Length;
161+
}
162+
return total;
155163
}
156164

157165
public override void Release()

0 commit comments

Comments
 (0)