Skip to content

Commit 64c407a

Browse files
Support params on SQL query & translate APIs (#6027) (#6028)
Co-authored-by: Steve Gordon <sgordon@hotmail.co.uk>
1 parent 2a7f62b commit 64c407a

File tree

3 files changed

+35
-10
lines changed

3 files changed

+35
-10
lines changed

src/Nest/XPack/Sql/ISqlRequest.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
33
// See the LICENSE file in the project root for more information
44

5+
using System.Collections.Generic;
56
using System.Runtime.Serialization;
67

78
namespace Nest
@@ -19,6 +20,12 @@ public interface ISqlRequest
1920
[DataMember(Name ="filter")]
2021
QueryContainer Filter { get; set; }
2122

23+
/// <summary>
24+
/// Optional values for parameters in the query.
25+
/// </summary>
26+
[DataMember(Name = "params")]
27+
IList<object> Params { get; set; }
28+
2229
/// <summary> The SQL query you want Elasticsearch to execute </summary>
2330
[DataMember(Name ="query")]
2431
string Query { get; set; }

src/Nest/XPack/Sql/QuerySql/QuerySqlRequest.cs

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// See the LICENSE file in the project root for more information
44

55
using System;
6+
using System.Collections.Generic;
67
using System.Runtime.Serialization;
78

89
namespace Nest
@@ -51,6 +52,9 @@ public partial class QuerySqlRequest
5152
/// <inheritdoc cref="ISqlRequest.Filter" />
5253
public QueryContainer Filter { get; set; }
5354

55+
/// <inheritdoc cref="ISqlRequest.Params" />
56+
public IList<object> Params { get; set; }
57+
5458
/// <inheritdoc cref="ISqlRequest.Query" />
5559
public string Query { get; set; }
5660

@@ -70,34 +74,38 @@ public partial class QuerySqlDescriptor
7074
string IQuerySqlRequest.Cursor { get; set; }
7175
int? ISqlRequest.FetchSize { get; set; }
7276
QueryContainer ISqlRequest.Filter { get; set; }
77+
IList<object> ISqlRequest.Params { get; set; }
7378
string ISqlRequest.Query { get; set; }
7479
IRuntimeFields ISqlRequest.RuntimeFields { get; set; }
7580
string ISqlRequest.TimeZone { get; set; }
7681
Time IQuerySqlRequest.WaitForCompletionTimeout { get; set; }
7782

83+
/// <inheritdoc cref="ISqlRequest.Params" />
84+
public QuerySqlDescriptor Params(IEnumerable<object> parameters) => Assign(parameters, (a, v) => a.Params = v?.ToListOrNullIfEmpty());
85+
86+
/// <inheritdoc cref="ISqlRequest.Params" />
87+
public QuerySqlDescriptor Params(IList<object> parameters) => Assign(parameters, (a, v) => a.Params = v);
88+
89+
/// <inheritdoc cref="ISqlRequest.Params" />
90+
public QuerySqlDescriptor Params(params object[] parameters) => Assign(parameters, (a, v) => a.Params = v);
91+
7892
/// <inheritdoc cref="ISqlRequest.Query" />
79-
/// >
8093
public QuerySqlDescriptor Query(string query) => Assign(query, (a, v) => a.Query = v);
8194

8295
/// <inheritdoc cref="ISqlRequest.TimeZone" />
83-
/// >
8496
public QuerySqlDescriptor TimeZone(string timeZone) => Assign(timeZone, (a, v) => a.TimeZone = v);
8597

8698
/// <inheritdoc cref="ISqlRequest.FetchSize" />
87-
/// >
8899
public QuerySqlDescriptor FetchSize(int? fetchSize) => Assign(fetchSize, (a, v) => a.FetchSize = v);
89100

90101
/// <inheritdoc cref="ISqlRequest.Filter" />
91-
/// >
92102
public QuerySqlDescriptor Filter<T>(Func<QueryContainerDescriptor<T>, QueryContainer> querySelector)
93103
where T : class => Assign(querySelector, (a, v) => a.Filter = v?.Invoke(new QueryContainerDescriptor<T>()));
94104

95105
/// <inheritdoc cref="IQuerySqlRequest.Cursor" />
96-
/// >
97106
public QuerySqlDescriptor Cursor(string cursor) => Assign(cursor, (a, v) => a.Cursor = v);
98107

99108
/// <inheritdoc cref="IQuerySqlRequest.Columnar" />
100-
/// >
101109
public QuerySqlDescriptor Columnar(bool? columnar = true) => Assign(columnar, (a, v) => a.Columnar = v);
102110

103111
/// <inheritdoc cref="ISqlRequest.RuntimeFields" />

src/Nest/XPack/Sql/TranslateSql/TranslateSqlRequest.cs

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// See the LICENSE file in the project root for more information
44

55
using System;
6+
using System.Collections.Generic;
67
using Elasticsearch.Net.Specification.SqlApi;
78

89
namespace Nest
@@ -22,6 +23,9 @@ protected sealed override void RequestDefaults(TranslateSqlRequestParameters par
2223
/// <inheritdoc cref="ISqlRequest.Filter" />
2324
public QueryContainer Filter { get; set; }
2425

26+
/// <inheritdoc cref="ISqlRequest.Params" />
27+
public IList<object> Params { get; set; }
28+
2529
/// <inheritdoc cref="ISqlRequest.Query" />
2630
public string Query { get; set; }
2731

@@ -39,24 +43,30 @@ protected sealed override void RequestDefaults(TranslateSqlRequestParameters par
3943

4044
int? ISqlRequest.FetchSize { get; set; }
4145
QueryContainer ISqlRequest.Filter { get; set; }
46+
IList<object> ISqlRequest.Params { get; set; }
4247
string ISqlRequest.Query { get; set; }
4348
string ISqlRequest.TimeZone { get; set; }
4449
IRuntimeFields ISqlRequest.RuntimeFields { get; set; }
4550

51+
/// <inheritdoc cref="ISqlRequest.Params" />
52+
public TranslateSqlDescriptor Params(IEnumerable<object> parameters) => Assign(parameters, (a, v) => a.Params = v?.ToListOrNullIfEmpty());
53+
54+
/// <inheritdoc cref="ISqlRequest.Params" />
55+
public TranslateSqlDescriptor Params(IList<object> parameters) => Assign(parameters, (a, v) => a.Params = v);
56+
57+
/// <inheritdoc cref="ISqlRequest.Params" />
58+
public TranslateSqlDescriptor Params(params object[] parameters) => Assign(parameters, (a, v) => a.Params = v);
59+
4660
/// <inheritdoc cref="ISqlRequest.Query" />
47-
/// >
4861
public TranslateSqlDescriptor Query(string query) => Assign(query, (a, v) => a.Query = v);
4962

5063
/// <inheritdoc cref="ISqlRequest.TimeZone" />
51-
/// >
5264
public TranslateSqlDescriptor TimeZone(string timeZone) => Assign(timeZone, (a, v) => a.TimeZone = v);
5365

5466
/// <inheritdoc cref="ISqlRequest.FetchSize" />
55-
/// >
5667
public TranslateSqlDescriptor FetchSize(int? fetchSize) => Assign(fetchSize, (a, v) => a.FetchSize = v);
5768

5869
/// <inheritdoc cref="ISqlRequest.Filter" />
59-
/// >
6070
public TranslateSqlDescriptor Filter<T>(Func<QueryContainerDescriptor<T>, QueryContainer> querySelector)
6171
where T : class => Assign(querySelector, (a, v) => a.Filter = v?.Invoke(new QueryContainerDescriptor<T>()));
6272

0 commit comments

Comments
 (0)