1414import org .elasticsearch .xpack .esql .analysis .Analyzer ;
1515import org .elasticsearch .xpack .esql .analysis .AnalyzerContext ;
1616import org .elasticsearch .xpack .esql .core .expression .Alias ;
17+ import org .elasticsearch .xpack .esql .core .expression .FieldAttribute ;
1718import org .elasticsearch .xpack .esql .core .expression .FoldContext ;
1819import org .elasticsearch .xpack .esql .core .expression .predicate .regex .RegexMatch ;
1920import org .elasticsearch .xpack .esql .core .tree .Source ;
4142import java .time .Duration ;
4243import java .time .Instant ;
4344import java .time .temporal .ChronoUnit ;
44- import java .util .List ;
4545import java .util .Map ;
4646import java .util .Set ;
4747
5757// @TestLogging(value = "org.elasticsearch.xpack.esql:TRACE", reason = "debug tests")
5858public class PromqlLogicalPlanOptimizerTests extends AbstractLogicalPlanOptimizerTests {
5959
60- private static final String PARAM_FORMATTING = "%1$s" ;
61-
6260 private static Analyzer tsAnalyzer ;
6361
6462 @ BeforeClass
@@ -93,7 +91,6 @@ public void testExplainPromql() {
9391 )
9492 """ );
9593
96- logger .trace (plan );
9794 }
9895
9996 public void testExplainPromqlSimple () {
@@ -106,7 +103,6 @@ public void testExplainPromqlSimple() {
106103 | STATS AVG(AVG_OVER_TIME(network.bytes_in)) BY TBUCKET(1h)
107104 """ );
108105
109- logger .trace (plan );
110106 }
111107
112108 /**
@@ -144,8 +140,6 @@ public void testAvgAvgOverTimeOutput() {
144140 | LIMIT 1000
145141 """ );
146142
147- logger .trace (plan );
148-
149143 var project = as (plan , Project .class );
150144 assertThat (project .projections (), hasSize (3 ));
151145
@@ -240,7 +234,6 @@ public void testTSAvgAvgOverTimeOutput() {
240234 | LIMIT 1000
241235 """ );
242236
243- logger .trace (plan );
244237 }
245238
246239 /**
@@ -270,9 +263,6 @@ public void testTSAvgWithoutByDimension() {
270263 | STATS avg(avg_over_time(network.bytes_in)) BY TBUCKET(1h)
271264 | LIMIT 1000
272265 """ );
273-
274- logger .trace (plan );
275-
276266 }
277267
278268 /**
@@ -306,7 +296,6 @@ public void testPromqlAvgWithoutByDimension() {
306296 | LIMIT 1000
307297 """ );
308298
309- logger .trace (plan );
310299 }
311300
312301 /**
@@ -337,7 +326,6 @@ public void testRangeSelector() {
337326 | promql step 1h ( max by (pod) (avg_over_time(network.bytes_in[1h])) )
338327 """ );
339328
340- logger .trace (plan );
341329 }
342330
343331 @ AwaitsFix (bugUrl = "Invalid call to dataType on an unresolved object ?RATE_$1" )
@@ -353,7 +341,6 @@ avg by (pod) (rate(network.bytes_in[1h]))
353341 """ ;
354342
355343 var plan = planPromql (testQuery );
356- logger .trace (plan );
357344 }
358345
359346 /**
@@ -385,8 +372,10 @@ public void testStartEndStep() {
385372 """ ;
386373
387374 var plan = planPromql (testQuery );
388- List <LogicalPlan > collect = plan .collect (Bucket .class ::isInstance );
389- logger .trace (plan );
375+ var filters = plan .collect (Filter .class ::isInstance );
376+ assertThat (filters , hasSize (1 ));
377+ var filter = (Filter ) filters .getFirst ();
378+ assertThat (filter .condition ().collect (e -> e instanceof FieldAttribute a && a .name ().equals ("@timestamp" )), hasSize (2 ));
390379 }
391380
392381 /**
@@ -427,7 +416,6 @@ max by (pod) (avg_over_time(network.bytes_in{pod=~"host-0|host-1|host-2"}[5m]))
427416 assertThat (filters , hasSize (1 ));
428417 var filter = (Filter ) filters .getFirst ();
429418 assertThat (filter .condition ().anyMatch (In .class ::isInstance ), equalTo (true ));
430- logger .trace (plan );
431419 }
432420
433421 public void testLabelSelectorPrefix () {
@@ -448,7 +436,6 @@ avg by (pod) (avg_over_time(network.bytes_in{pod=~"host-.*"}[5m]))
448436 var filter = (Filter ) filters .getFirst ();
449437 assertThat (filter .condition ().anyMatch (StartsWith .class ::isInstance ), equalTo (true ));
450438 assertThat (filter .condition ().anyMatch (NotEquals .class ::isInstance ), equalTo (false ));
451- logger .trace (plan );
452439 }
453440
454441 public void testLabelSelectorProperPrefix () {
@@ -518,7 +505,6 @@ sum by (host.name, mountpoint) (last_over_time(system.filesystem.usage{state=~"u
518505 """ ;
519506
520507 var plan = planPromql (testQuery );
521- logger .trace (plan );
522508 }
523509
524510 @ AwaitsFix (bugUrl = "only aggregations across timeseries are supported at this time (found [foo or bar])" )
@@ -539,7 +525,6 @@ public void testGrammar() {
539525 """ ;
540526
541527 var plan = planPromql (testQuery );
542- logger .trace (plan );
543528 }
544529
545530 // public void testPromqlArithmetricOperators() {
@@ -567,9 +552,9 @@ protected LogicalPlan planPromql(String query) {
567552 query = query .replace ("$now-1h" , '"' + Instant .now ().minus (1 , ChronoUnit .HOURS ).toString () + '"' );
568553 query = query .replace ("$now" , '"' + Instant .now ().toString () + '"' );
569554 var analyzed = tsAnalyzer .analyze (parser .createStatement (query ));
570- logger .trace (analyzed );
555+ logger .trace ("analyzed plan: \n {}" , analyzed );
571556 var optimized = logicalOptimizer .optimize (analyzed );
572- logger .trace (optimized );
557+ logger .trace ("optimized plan: \n {}" , optimized );
573558 return optimized ;
574559 }
575560}
0 commit comments