Skip to content

Commit 625267e

Browse files
[8.19] Align LINQ-to-ES|QL integration with Elastic.Esql 0.11.0 (#8886) (#8887)
Co-authored-by: Florian Bernd <git@flobernd.de>
1 parent 80f1ad3 commit 625267e

6 files changed

Lines changed: 36 additions & 105 deletions

File tree

src/Elastic.Clients.Elasticsearch/Elastic.Clients.Elasticsearch.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
</PropertyGroup>
3232

3333
<ItemGroup>
34-
<PackageReference Include="Elastic.Esql" Version="0.10.0" />
34+
<PackageReference Include="Elastic.Esql" Version="0.11.0" />
3535
<PackageReference Include="Elastic.Transport" Version="0.16.0" />
3636
<PackageReference Include="PolySharp" Version="1.15.0">
3737
<PrivateAssets>all</PrivateAssets>

src/Elastic.Clients.Elasticsearch/_Shared/Api/Esql/EsqlQueryExecutor.cs

Lines changed: 31 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
using Elastic.Esql.Execution;
1313
using Elastic.Esql.QueryModel;
1414
using Elastic.Transport;
15+
using Elastic.Transport.Products.Elasticsearch;
1516

1617
#if NET10_0_OR_GREATER
1718
using System.IO.Pipelines;
@@ -37,7 +38,7 @@ public IEsqlResponse ExecuteQuery(string esql, EsqlParameters? parameters, objec
3738
var queryOptions = ResolveOptions(options);
3839
var request = BuildQueryRequest(esql, parameters, queryOptions);
3940
request.BeforeRequest();
40-
var response = _client.DoRequest<EsqlQueryRequest, StreamResponse, EsqlQueryRequestParameters>(request);
41+
var response = _client.DoRequest<EsqlQueryRequest, ElasticsearchStreamResponse, EsqlQueryRequestParameters>(request);
4142
return new EsqlTransportResponse(response);
4243
}
4344

@@ -46,8 +47,13 @@ public async Task<IEsqlAsyncResponse> ExecuteQueryAsync(string esql, EsqlParamet
4647
var queryOptions = ResolveOptions(options);
4748
var request = BuildQueryRequest(esql, parameters, queryOptions);
4849
request.BeforeRequest();
49-
var response = await _client.DoRequestAsync<EsqlQueryRequest, StreamResponse, EsqlQueryRequestParameters>(request, cancellationToken)
50+
#if NET10_0_OR_GREATER
51+
var response = await _client.DoRequestAsync<EsqlQueryRequest, ElasticsearchPipeResponse, EsqlQueryRequestParameters>(request, cancellationToken)
52+
.ConfigureAwait(false);
53+
#else
54+
var response = await _client.DoRequestAsync<EsqlQueryRequest, ElasticsearchStreamResponse, EsqlQueryRequestParameters>(request, cancellationToken)
5055
.ConfigureAwait(false);
56+
#endif
5157
return new EsqlTransportAsyncResponse(response);
5258
}
5359

@@ -56,7 +62,7 @@ public IEsqlResponse SubmitAsyncQuery(string esql, EsqlParameters? parameters, o
5662
var queryOptions = ResolveOptions(options);
5763
var request = BuildAsyncQueryRequest(esql, parameters, queryOptions, asyncOptions);
5864
request.BeforeRequest();
59-
var response = _client.DoRequest<AsyncQueryRequest, StreamResponse, AsyncQueryRequestParameters>(request);
65+
var response = _client.DoRequest<AsyncQueryRequest, ElasticsearchStreamResponse, AsyncQueryRequestParameters>(request);
6066
return new EsqlTransportResponse(response);
6167
}
6268

@@ -65,8 +71,13 @@ public async Task<IEsqlAsyncResponse> SubmitAsyncQueryAsync(string esql, EsqlPar
6571
var queryOptions = ResolveOptions(options);
6672
var request = BuildAsyncQueryRequest(esql, parameters, queryOptions, asyncOptions);
6773
request.BeforeRequest();
68-
var response = await _client.DoRequestAsync<AsyncQueryRequest, StreamResponse, AsyncQueryRequestParameters>(request, cancellationToken)
74+
#if NET10_0_OR_GREATER
75+
var response = await _client.DoRequestAsync<AsyncQueryRequest, ElasticsearchPipeResponse, AsyncQueryRequestParameters>(request, cancellationToken)
6976
.ConfigureAwait(false);
77+
#else
78+
var response = await _client.DoRequestAsync<AsyncQueryRequest, ElasticsearchStreamResponse, AsyncQueryRequestParameters>(request, cancellationToken)
79+
.ConfigureAwait(false);
80+
#endif
7081
return new EsqlTransportAsyncResponse(response);
7182
}
7283

@@ -77,7 +88,7 @@ public IEsqlResponse PollAsyncQuery(string queryId, object? options)
7788
if (queryOptions?.RequestConfiguration is not null)
7889
request.RequestConfiguration = queryOptions.RequestConfiguration;
7990
request.BeforeRequest();
80-
var response = _client.DoRequest<AsyncQueryGetRequest, StreamResponse, AsyncQueryGetRequestParameters>(request);
91+
var response = _client.DoRequest<AsyncQueryGetRequest, ElasticsearchStreamResponse, AsyncQueryGetRequestParameters>(request);
8192
return new EsqlTransportResponse(response);
8293
}
8394

@@ -88,8 +99,13 @@ public async Task<IEsqlAsyncResponse> PollAsyncQueryAsync(string queryId, object
8899
if (queryOptions?.RequestConfiguration is not null)
89100
request.RequestConfiguration = queryOptions.RequestConfiguration;
90101
request.BeforeRequest();
91-
var response = await _client.DoRequestAsync<AsyncQueryGetRequest, StreamResponse, AsyncQueryGetRequestParameters>(request, cancellationToken)
102+
#if NET10_0_OR_GREATER
103+
var response = await _client.DoRequestAsync<AsyncQueryGetRequest, ElasticsearchPipeResponse, AsyncQueryGetRequestParameters>(request, cancellationToken)
92104
.ConfigureAwait(false);
105+
#else
106+
var response = await _client.DoRequestAsync<AsyncQueryGetRequest, ElasticsearchStreamResponse, AsyncQueryGetRequestParameters>(request, cancellationToken)
107+
.ConfigureAwait(false);
108+
#endif
93109
return new EsqlTransportAsyncResponse(response);
94110
}
95111

@@ -231,9 +247,9 @@ JsonValueKind.Number when element.TryGetInt64(out var l) => FieldValue.Long(l),
231247

232248
internal sealed class EsqlTransportResponse : IEsqlResponse
233249
{
234-
private readonly StreamResponse _response;
250+
private readonly ElasticsearchStreamResponse _response;
235251

236-
public EsqlTransportResponse(StreamResponse response) => _response = response;
252+
public EsqlTransportResponse(ElasticsearchStreamResponse response) => _response = response;
237253

238254
public Stream Body => _response.Body;
239255

@@ -243,28 +259,21 @@ internal sealed class EsqlTransportResponse : IEsqlResponse
243259
#if NET10_0_OR_GREATER
244260
internal sealed class EsqlTransportAsyncResponse : IEsqlAsyncResponse
245261
{
246-
private readonly StreamResponse _response;
262+
private readonly ElasticsearchPipeResponse _response;
247263

248-
public EsqlTransportAsyncResponse(StreamResponse response)
249-
{
250-
_response = response;
251-
Body = PipeReader.Create(response.Body);
252-
}
264+
public EsqlTransportAsyncResponse(ElasticsearchPipeResponse response) => _response = response;
253265

254-
public PipeReader Body { get; }
266+
public PipeReader Body => _response.Body;
255267

256-
public async ValueTask DisposeAsync()
257-
{
258-
await Body.CompleteAsync().ConfigureAwait(false);
259-
_response.Dispose();
260-
}
268+
public async ValueTask DisposeAsync() =>
269+
await _response.DisposeAsync().ConfigureAwait(false);
261270
}
262271
#else
263272
internal sealed class EsqlTransportAsyncResponse : IEsqlAsyncResponse
264273
{
265-
private readonly StreamResponse _response;
274+
private readonly ElasticsearchStreamResponse _response;
266275

267-
public EsqlTransportAsyncResponse(StreamResponse response) => _response = response;
276+
public EsqlTransportAsyncResponse(ElasticsearchStreamResponse response) => _response = response;
268277

269278
public Stream Body => _response.Body;
270279

src/Elastic.Clients.Elasticsearch/_Shared/Api/Esql/EsqlQueryRequest.cs

Lines changed: 0 additions & 62 deletions
This file was deleted.

src/Elastic.Clients.Elasticsearch/_Shared/Api/Esql/EsqlQueryResponse.cs

Lines changed: 0 additions & 15 deletions
This file was deleted.

src/Elastic.Clients.Elasticsearch/_Shared/Client/ElasticsearchClient.Esql.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,31 +41,31 @@ public partial class EsqlNamespacedClient
4141
/// </summary>
4242
/// <returns>The ES|QL query result as a generic stream response.</returns>
4343
/// <remarks>The response must be disposed after use.</remarks>
44-
public virtual Task<StreamResponse> QueryAsStreamAsync<TDocument>(
44+
public virtual Task<ElasticsearchStreamResponse> QueryAsStreamAsync<TDocument>(
4545
Action<EsqlQueryRequestDescriptor<TDocument>> configureRequest,
4646
CancellationToken cancellationToken = default)
4747
{
4848
var descriptor = new EsqlQueryRequestDescriptor<TDocument>();
4949
configureRequest?.Invoke(descriptor);
5050
var request = descriptor.Instance;
5151
request.BeforeRequest();
52-
return DoRequestAsync<EsqlQueryRequest, StreamResponse, EsqlQueryRequestParameters>(request, cancellationToken);
52+
return DoRequestAsync<EsqlQueryRequest, ElasticsearchStreamResponse, EsqlQueryRequestParameters>(request, cancellationToken);
5353
}
5454

5555
/// <summary>
5656
/// Executes an ES|QL request and returns the response as a stream.
5757
/// </summary>
5858
/// <returns>The ES|QL query result as a generic stream response.</returns>
5959
/// <remarks>The response must be disposed after use.</remarks>
60-
public virtual Task<StreamResponse> QueryAsStreamAsync(
60+
public virtual Task<ElasticsearchStreamResponse> QueryAsStreamAsync(
6161
Action<EsqlQueryRequestDescriptor> configureRequest,
6262
CancellationToken cancellationToken = default)
6363
{
6464
var descriptor = new EsqlQueryRequestDescriptor();
6565
configureRequest?.Invoke(descriptor);
6666
var request = descriptor.Instance;
6767
request.BeforeRequest();
68-
return DoRequestAsync<EsqlQueryRequest, StreamResponse, EsqlQueryRequestParameters>(request, cancellationToken);
68+
return DoRequestAsync<EsqlQueryRequest, ElasticsearchStreamResponse, EsqlQueryRequestParameters>(request, cancellationToken);
6969
}
7070

7171
#endregion

src/Elastic.Clients.Elasticsearch/_Shared/Core/Configuration/ElasticsearchClientSettings.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,6 @@ protected ConnectionConfigurationBase(
436436
: base(nodePool, requestInvoker, serializer, registration ?? new ElasticsearchProductRegistration(typeof(ElasticsearchClient)))
437437
{
438438
UserAgent(ConnectionConfiguration.DefaultUserAgent);
439-
ResponseBuilder(new EsqlResponseBuilder());
440439
}
441440

442441
bool TransportClientConfigurationValues.IncludeServerStackTraceOnError => _includeServerStackTraceOnError;

0 commit comments

Comments
 (0)