1616import org .elasticsearch .xpack .esql .expression .function .aggregate .Count ;
1717import org .elasticsearch .xpack .esql .expression .predicate .operator .arithmetic .Add ;
1818import org .elasticsearch .xpack .esql .optimizer .AbstractLogicalPlanOptimizerTests ;
19- import org .elasticsearch .xpack .esql .plan .logical .Aggregate ;
20- import org .elasticsearch .xpack .esql .plan .logical .EsRelation ;
21- import org .elasticsearch .xpack .esql .plan .logical .Eval ;
22- import org .elasticsearch .xpack .esql .plan .logical .Limit ;
23- import org .elasticsearch .xpack .esql .plan .logical .Project ;
24- import org .elasticsearch .xpack .esql .plan .logical .TopN ;
19+ import org .elasticsearch .xpack .esql .plan .logical .*;
2520import org .elasticsearch .xpack .esql .plan .logical .join .InlineJoin ;
2621import org .elasticsearch .xpack .esql .plan .logical .join .StubRelation ;
2722import org .elasticsearch .xpack .esql .plan .logical .local .EsqlProject ;
3227import static org .elasticsearch .xpack .esql .EsqlTestUtils .as ;
3328import static org .elasticsearch .xpack .esql .core .type .DataType .INTEGER ;
3429import static org .elasticsearch .xpack .esql .core .type .DataType .LONG ;
35- import static org .hamcrest .Matchers .contains ;
36- import static org .hamcrest .Matchers .containsString ;
37- import static org .hamcrest .Matchers .is ;
38- import static org .hamcrest .Matchers .nullValue ;
39- import static org .hamcrest .Matchers .startsWith ;
30+ import static org .elasticsearch .xpack .esql .optimizer .LogicalPlanOptimizerTests .releaseBuildForInlinestats ;
31+ import static org .hamcrest .Matchers .*;
4032
4133public class ReplaceStatsFilteredAggWithEvalTests extends AbstractLogicalPlanOptimizerTests {
4234
@@ -391,11 +383,14 @@ public void testReplaceStatsFilteredAggWithEvalSingleAggWithGroup() {
391383 * \_EsRelation[test][_meta_field{f}#10, emp_no{f}#4, first_name{f}#5, ge..]
392384 */
393385 public void testReplaceInlinestatsFilteredAggWithEvalSingleAgg () {
394- var plan = plan ( """
386+ var query = """
395387 from test
396388 | inlinestats sum(salary) where false
397- """ );
398-
389+ """ ;
390+ if (releaseBuildForInlinestats (query )) {
391+ return ;
392+ }
393+ var plan = plan (query );
399394 var project = as (plan , Project .class );
400395 assertMap (
401396 Expressions .names (project .projections ()).stream ().map (Object ::toString ).toList (),
@@ -431,11 +426,14 @@ public void testReplaceInlinestatsFilteredAggWithEvalSingleAgg() {
431426 * \_EsRelation[test][_meta_field{f}#10, emp_no{f}#4, first_name{f}#5, ge..]
432427 */
433428 public void testReplaceInlinestatsFilteredAggWithEvalSingleAggWithExpression () {
434- var plan = plan ( """
429+ var query = """
435430 from test
436431 | inlinestats sum(salary) + 1 where false
437- """ );
438-
432+ """ ;
433+ if (releaseBuildForInlinestats (query )) {
434+ return ;
435+ }
436+ var plan = plan (query );
439437 var project = as (plan , Project .class );
440438 assertMap (
441439 Expressions .names (project .projections ()).stream ().map (Object ::toString ).toList (),
@@ -475,14 +473,17 @@ public void testReplaceInlinestatsFilteredAggWithEvalSingleAggWithExpression() {
475473 * \_StubRelation[[salary{f}#14, emp_no{f}#9]]
476474 */
477475 public void testReplaceInlinestatsFilteredAggWithEvalMixedFilterAndNoFilter () {
478- var plan = plan ( """
476+ var query = """
479477 from test
480478 | keep salary, emp_no
481479 | inlinestats sum(salary) + 1 where false,
482480 sum(salary) + 2
483481 by emp_no
484- """ );
485-
482+ """ ;
483+ if (releaseBuildForInlinestats (query )) {
484+ return ;
485+ }
486+ var plan = plan (query );
486487 var limit = as (plan , Limit .class );
487488 var ij = as (limit .child (), InlineJoin .class );
488489 var left = as (ij .left (), EsqlProject .class );
@@ -528,14 +529,18 @@ public void testReplaceInlinestatsFilteredAggWithEvalMixedFilterAndNoFilter() {
528529 * \_StubRelation[[salary{f}#16]]
529530 */
530531 public void testReplaceInlinestatsFilteredAggWithEvalFilterFalseAndNull () {
531- var plan = plan ( """
532+ var query = """
532533 from test
533534 | keep salary
534535 | inlinestats sum(salary) + 1 where false,
535536 sum(salary) + 3,
536537 sum(salary) + 2 where null,
537538 sum(salary) + 4 where not true
538- """ );
539+ """ ;
540+ if (releaseBuildForInlinestats (query )) {
541+ return ;
542+ }
543+ var plan = plan (query );
539544 var limit = as (plan , Limit .class );
540545 var ij = as (limit .child (), InlineJoin .class );
541546
@@ -578,12 +583,15 @@ public void testReplaceInlinestatsFilteredAggWithEvalFilterFalseAndNull() {
578583 * \_EsRelation[test][_meta_field{f}#12, emp_no{f}#6, first_name{f}#7, ge..]
579584 */
580585 public void testReplaceInlinestatsFilteredAggWithEvalNotTrue () {
581- var plan = plan ( """
586+ var query = """
582587 from test
583588 | keep emp_no, salary
584589 | inlinestats count(salary) where not true
585- """ );
586-
590+ """ ;
591+ if (releaseBuildForInlinestats (query )) {
592+ return ;
593+ }
594+ var plan = plan (query );
587595 var project = as (plan , EsqlProject .class );
588596 assertThat (Expressions .names (project .projections ()), contains ("emp_no" , "salary" , "count(salary) where not true" ));
589597
@@ -608,11 +616,15 @@ public void testReplaceInlinestatsFilteredAggWithEvalNotTrue() {
608616 * \_StubRelation[[emp_no{f}#8, salary{f}#13, gender{f}#10]]
609617 */
610618 public void testReplaceInlinestatsFilteredAggWithEvalNotFalse () {
611- var plan = plan ( """
619+ var query = """
612620 from test
613621 | keep emp_no, salary, gender
614622 | inlinestats m1 = count(salary) where not false
615- """ );
623+ """ ;
624+ if (releaseBuildForInlinestats (query )) {
625+ return ;
626+ }
627+ var plan = plan (query );
616628 var limit = as (plan , Limit .class );
617629 var ij = as (limit .child (), InlineJoin .class );
618630
@@ -638,11 +650,15 @@ public void testReplaceInlinestatsFilteredAggWithEvalNotFalse() {
638650 * \_EsRelation[test][_meta_field{f}#11, emp_no{f}#5, first_name{f}#6, ge..]
639651 */
640652 public void testReplaceInlinestatsFilteredAggWithEvalCount () {
641- var plan = plan ( """
653+ var query = """
642654 from test
643655 | keep salary
644656 | inlinestats count(salary) where false
645- """ );
657+ """ ;
658+ if (releaseBuildForInlinestats (query )) {
659+ return ;
660+ }
661+ var plan = plan (query );
646662 var project = as (plan , EsqlProject .class );
647663 assertThat (Expressions .names (project .projections ()), contains ("salary" , "count(salary) where false" ));
648664
@@ -664,11 +680,15 @@ public void testReplaceInlinestatsFilteredAggWithEvalCount() {
664680 * \_EsRelation[test][_meta_field{f}#11, emp_no{f}#5, first_name{f}#6, ge..]
665681 */
666682 public void testReplaceInlinestatsFilteredAggWithEvalCountDistinctInExpression () {
667- var plan = plan ( """
683+ var query = """
668684 from test
669685 | keep salary
670686 | inlinestats count_distinct(salary + 2) + 3 where false
671- """ );
687+ """ ;
688+ if (releaseBuildForInlinestats (query )) {
689+ return ;
690+ }
691+ var plan = plan (query );
672692 var project = as (plan , EsqlProject .class );
673693 assertThat (Expressions .names (project .projections ()), contains ("salary" , "count_distinct(salary + 2) + 3 where false" ));
674694
@@ -695,14 +715,18 @@ public void testReplaceInlinestatsFilteredAggWithEvalCountDistinctInExpression()
695715 * \_StubRelation[[emp_no{f}#17, salary{f}#22]]
696716 */
697717 public void testReplaceInlinestatsFilteredAggWithEvalSameAggWithAndWithoutFilter () {
698- var plan = plan ( """
718+ var query = """
699719 from test
700720 | keep emp_no, salary
701721 | inlinestats max = max(salary), max_a = max(salary) where null,
702722 min = min(salary),
703723 min_a = min(salary) where to_string(null) == "abc"
704724 by emp_no
705- """ );
725+ """ ;
726+ if (releaseBuildForInlinestats (query )) {
727+ return ;
728+ }
729+ var plan = plan (query );
706730 var limit = as (plan , Limit .class );
707731 var ij = as (limit .child (), InlineJoin .class );
708732
@@ -743,15 +767,18 @@ public void testReplaceInlinestatsFilteredAggWithEvalSameAggWithAndWithoutFilter
743767 * \_EsRelation[test][_meta_field{f}#15, emp_no{f}#9, first_name{f}#10, g..]
744768 */
745769 public void testReplaceTwoConsecutiveInlinestats_WithFalseFilters () {
746- var plan = plan ( """
770+ var query = """
747771 from test
748772 | keep emp_no
749773 | sort emp_no
750774 | limit 3
751775 | inlinestats count = count(*) where false
752776 | inlinestats cc = count_distinct(emp_no) where false
753- """ );
754-
777+ """ ;
778+ if (releaseBuildForInlinestats (query )) {
779+ return ;
780+ }
781+ var plan = plan (query );
755782 var project = as (plan , EsqlProject .class );
756783 assertThat (Expressions .names (project .projections ()), contains ("emp_no" , "count" , "cc" ));
757784
0 commit comments