Skip to content

Commit df93221

Browse files
Implement review suggestions
1 parent bfc598e commit df93221

File tree

6 files changed

+35
-28
lines changed

6 files changed

+35
-28
lines changed

x-pack/plugin/esql/src/main/antlr/lexer/Set.g4

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
lexer grammar Rename;
88

99
//
10-
// SET key="value", ke2="value2"...
10+
// SET key="value"
1111
//
1212
SET : 'set' -> pushMode(SET_MODE);
1313

x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/EsqlParser.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import org.elasticsearch.logging.Logger;
2121
import org.elasticsearch.xpack.esql.core.util.StringUtils;
2222
import org.elasticsearch.xpack.esql.expression.function.EsqlFunctionRegistry;
23-
import org.elasticsearch.xpack.esql.plan.logical.EsqlQuery;
23+
import org.elasticsearch.xpack.esql.plan.logical.EsqlStatement;
2424
import org.elasticsearch.xpack.esql.plan.logical.LogicalPlan;
2525
import org.elasticsearch.xpack.esql.session.Configuration;
2626
import org.elasticsearch.xpack.esql.telemetry.PlanTelemetry;
@@ -117,11 +117,11 @@ public LogicalPlan createStatement(String query, QueryParams params, PlanTelemet
117117
}
118118

119119
// testing utility
120-
public EsqlQuery createQuery(String query, QueryParams params, Configuration configuration) {
120+
public EsqlStatement createQuery(String query, QueryParams params, Configuration configuration) {
121121
return createQuery(query, params, new PlanTelemetry(new EsqlFunctionRegistry()), configuration);
122122
}
123123

124-
public EsqlQuery createQuery(String query, QueryParams params, PlanTelemetry metrics, Configuration configuration) {
124+
public EsqlStatement createQuery(String query, QueryParams params, PlanTelemetry metrics, Configuration configuration) {
125125
if (log.isDebugEnabled()) {
126126
log.debug("Parsing as statement: {}", query);
127127
}

x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/LogicalPlanBuilder.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
import org.elasticsearch.xpack.esql.plan.logical.Dissect;
5454
import org.elasticsearch.xpack.esql.plan.logical.Drop;
5555
import org.elasticsearch.xpack.esql.plan.logical.Enrich;
56-
import org.elasticsearch.xpack.esql.plan.logical.EsqlQuery;
56+
import org.elasticsearch.xpack.esql.plan.logical.EsqlStatement;
5757
import org.elasticsearch.xpack.esql.plan.logical.Eval;
5858
import org.elasticsearch.xpack.esql.plan.logical.Explain;
5959
import org.elasticsearch.xpack.esql.plan.logical.Filter;
@@ -120,8 +120,8 @@ public LogicalPlanBuilder(ParsingContext context) {
120120

121121
private int queryDepth = 0;
122122

123-
protected EsqlQuery query(ParseTree ctx) {
124-
EsqlQuery p = typedParsing(this, ctx, EsqlQuery.class);
123+
protected EsqlStatement query(ParseTree ctx) {
124+
EsqlStatement p = typedParsing(this, ctx, EsqlStatement.class);
125125
return p;
126126
}
127127

@@ -143,14 +143,14 @@ protected LogicalPlan plan(ParseTree ctx) {
143143
}
144144

145145
@Override
146-
public EsqlQuery visitStatements(EsqlBaseParser.StatementsContext ctx) {
146+
public EsqlStatement visitStatements(EsqlBaseParser.StatementsContext ctx) {
147147
List<QuerySetting> settings = new ArrayList<>();
148148
for (EsqlBaseParser.SetCommandContext setCommandContext : ctx.setCommand()) {
149149
settings.add(visitSetCommand(setCommandContext));
150150
}
151151

152152
LogicalPlan query = visitSingleStatement(ctx.singleStatement());
153-
return new EsqlQuery(query, settings);
153+
return new EsqlStatement(query, settings);
154154
}
155155

156156
protected List<LogicalPlan> plans(List<? extends ParserRuleContext> ctxs) {

x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plan/logical/EsqlQuery.java renamed to x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plan/logical/EsqlStatement.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@
1111

1212
import java.util.List;
1313

14-
public record EsqlQuery(LogicalPlan plan, List<QuerySetting> settings) {
14+
public record EsqlStatement(LogicalPlan plan, List<QuerySetting> settings) {
1515
/**
1616
* Returns the expression corresponding to a setting value.
17-
* If the setting name appears multiple times (in one or more QuerySettings objects), this will return last occurrence.
17+
* If the setting name appears multiple times, this will return last occurrence.
1818
*
1919
* @param name the setting name
2020
*/

x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/session/EsqlSession.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
import org.elasticsearch.xpack.esql.parser.EsqlParser;
6161
import org.elasticsearch.xpack.esql.parser.QueryParams;
6262
import org.elasticsearch.xpack.esql.plan.IndexPattern;
63-
import org.elasticsearch.xpack.esql.plan.logical.EsqlQuery;
63+
import org.elasticsearch.xpack.esql.plan.logical.EsqlStatement;
6464
import org.elasticsearch.xpack.esql.plan.logical.Explain;
6565
import org.elasticsearch.xpack.esql.plan.logical.LogicalPlan;
6666
import org.elasticsearch.xpack.esql.plan.logical.join.InlineJoin;
@@ -85,6 +85,7 @@
8585
import java.util.stream.Collectors;
8686
import java.util.stream.Stream;
8787

88+
import static java.util.stream.Collectors.joining;
8889
import static java.util.stream.Collectors.toSet;
8990
import static org.elasticsearch.index.query.QueryBuilders.boolQuery;
9091
import static org.elasticsearch.xpack.esql.core.tree.Source.EMPTY;
@@ -169,8 +170,8 @@ public void execute(EsqlQueryRequest request, EsqlExecutionInfo executionInfo, P
169170
assert ThreadPool.assertCurrentThreadPool(ThreadPool.Names.SEARCH);
170171
assert executionInfo != null : "Null EsqlExecutionInfo";
171172
LOGGER.debug("ESQL query:\n{}", request.query());
172-
EsqlQuery query = parse(request.query(), request.params());
173-
LogicalPlan plan = query.plan();
173+
EsqlStatement statement = parse(request.query(), request.params());
174+
LogicalPlan plan = statement.plan();
174175
if (plan instanceof Explain explain) {
175176
explainMode = true;
176177
plan = explain.query();
@@ -309,9 +310,15 @@ private static LocalRelation resultToPlan(LogicalPlan plan, Result result) {
309310
return new LocalRelation(plan.source(), schema, LocalSupplier.of(blocks));
310311
}
311312

312-
private EsqlQuery parse(String query, QueryParams params) {
313+
private EsqlStatement parse(String query, QueryParams params) {
313314
var parsed = new EsqlParser().createQuery(query, params, planTelemetry, configuration);
314-
LOGGER.debug("Parsed logical plan:\n{}", parsed);
315+
if (LOGGER.isDebugEnabled()) {
316+
LOGGER.debug("Parsed logical plan:\n{}", parsed.plan());
317+
LOGGER.debug(
318+
"Parsed settings:\n[{}]",
319+
parsed.settings().stream().map(x -> x.field().name() + "=" + x.value()).collect(joining(", "))
320+
);
321+
}
315322
return parsed;
316323
}
317324

x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/analysis/ParsingTests.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import org.elasticsearch.xpack.esql.parser.ParsingException;
2626
import org.elasticsearch.xpack.esql.parser.QueryParam;
2727
import org.elasticsearch.xpack.esql.parser.QueryParams;
28-
import org.elasticsearch.xpack.esql.plan.logical.EsqlQuery;
28+
import org.elasticsearch.xpack.esql.plan.logical.EsqlStatement;
2929
import org.elasticsearch.xpack.esql.plan.logical.Eval;
3030
import org.elasticsearch.xpack.esql.plan.logical.Limit;
3131
import org.elasticsearch.xpack.esql.plan.logical.LogicalPlan;
@@ -213,7 +213,7 @@ public void testInvalidSample() {
213213
}
214214

215215
public void testSet() {
216-
EsqlQuery query = parse("SET foo = \"bar\"; row a = 1", new QueryParams());
216+
EsqlStatement query = parse("SET foo = \"bar\"; row a = 1", new QueryParams());
217217
assertThat(query.plan(), is(instanceOf(Row.class)));
218218
assertThat(query.settings().size(), is(1));
219219
checkSetting(query, 0, "foo", BytesRefs.toBytesRef("bar"));
@@ -232,7 +232,7 @@ public void testSet() {
232232
}
233233

234234
public void testSetWithTripleQuotes() {
235-
EsqlQuery query = parse("SET foo = \"\"\"bar\"baz\"\"\"; row a = 1", new QueryParams());
235+
EsqlStatement query = parse("SET foo = \"\"\"bar\"baz\"\"\"; row a = 1", new QueryParams());
236236
assertThat(query.plan(), is(instanceOf(Row.class)));
237237
assertThat(query.settings().size(), is(1));
238238
checkSetting(query, 0, "foo", BytesRefs.toBytesRef("bar\"baz"));
@@ -249,7 +249,7 @@ public void testSetWithTripleQuotes() {
249249
}
250250

251251
public void testMultipleSet() {
252-
EsqlQuery query = parse(
252+
EsqlStatement query = parse(
253253
"SET foo = \"bar\"; SET bar = 2; SET foo = \"baz\"; SET x = 3.5; SET y = false; SET z = null; row a = 1",
254254
new QueryParams()
255255
);
@@ -265,7 +265,7 @@ public void testMultipleSet() {
265265
}
266266

267267
public void testSetArrays() {
268-
EsqlQuery query = parse("SET foo = [\"bar\", \"baz\"]; SET bar = [1, 2, 3]; row a = 1", new QueryParams());
268+
EsqlStatement query = parse("SET foo = [\"bar\", \"baz\"]; SET bar = [1, 2, 3]; row a = 1", new QueryParams());
269269
assertThat(query.plan(), is(instanceOf(Row.class)));
270270
assertThat(query.settings().size(), is(2));
271271

@@ -274,7 +274,7 @@ public void testSetArrays() {
274274
}
275275

276276
public void testSetWithNamedParams() {
277-
EsqlQuery query = parse(
277+
EsqlStatement query = parse(
278278
"SET foo = \"bar\"; SET bar = ?a; SET foo = \"baz\"; SET x = ?x; row a = 1",
279279
new QueryParams(
280280
List.of(
@@ -293,7 +293,7 @@ public void testSetWithNamedParams() {
293293
}
294294

295295
public void testSetWithPositionalParams() {
296-
EsqlQuery query = parse(
296+
EsqlStatement query = parse(
297297
"SET foo = \"bar\"; SET bar = ?; SET foo = \"baz\"; SET x = ?; row a = ?",
298298
new QueryParams(
299299
List.of(
@@ -319,7 +319,7 @@ public void testSetWithPositionalParams() {
319319
* @param name the setting name
320320
* @param value the setting value as it appears in the query at that position
321321
*/
322-
private void checkSetting(EsqlQuery query, int position, String name, Object value) {
322+
private void checkSetting(EsqlStatement query, int position, String name, Object value) {
323323
checkSetting(query, position, name, value, value);
324324
}
325325

@@ -331,17 +331,17 @@ private void checkSetting(EsqlQuery query, int position, String name, Object val
331331
* @param maskingValue the final value you'll obtain if you use query.setting(name).
332332
* It could be different from value in case of name collisions in the query
333333
*/
334-
private void checkSetting(EsqlQuery query, int position, String name, Object value, Object maskingValue) {
334+
private void checkSetting(EsqlStatement query, int position, String name, Object value, Object maskingValue) {
335335
assertThat(settingName(query, position), is(name));
336336
assertThat(settingValue(query, position), is(value));
337337
assertThat(query.setting(name).fold(FoldContext.small()), is(maskingValue));
338338
}
339339

340-
private String settingName(EsqlQuery query, int position) {
340+
private String settingName(EsqlStatement query, int position) {
341341
return query.settings().get(position).name();
342342
}
343343

344-
private Object settingValue(EsqlQuery query, int position) {
344+
private Object settingValue(EsqlStatement query, int position) {
345345
return query.settings().get(position).value().fold(FoldContext.small());
346346
}
347347

@@ -352,7 +352,7 @@ private String error(String query, QueryParams params) {
352352
return message.substring("line ".length());
353353
}
354354

355-
private EsqlQuery parse(String query, QueryParams params) {
355+
private EsqlStatement parse(String query, QueryParams params) {
356356
return parser.createQuery(query, params, TEST_CFG);
357357
}
358358

0 commit comments

Comments
 (0)