@@ -66,9 +66,9 @@ public void supportSearchSargPushDown_multiRange() throws IOException {
6666 String query =
6767 "source=opensearch-sql_test_index_account | where (age > 20 and age < 28) or (age > 25 and"
6868 + " age < 30) or (age >= 1 and age <= 10) or age = 0 | fields age" ;
69- var result = explainQueryToString (query );
70- String expected = loadExpectedPlan ("explain_sarg_filter_push_multi_range.json " );
71- assertJsonEqualsIgnoreId (expected , result );
69+ var result = explainQueryYaml (query );
70+ String expected = loadExpectedPlan ("explain_sarg_filter_push_multi_range.yaml " );
71+ assertYamlEqualsIgnoreId (expected , result );
7272 }
7373
7474 // Only for Calcite
@@ -339,10 +339,10 @@ public void testExplainIsEmptyOrOthers() throws IOException {
339339 @ Test
340340 public void testExplainIsNullOrOthers () throws IOException {
341341 // pushdown should work
342- String expected = loadExpectedPlan ("explain_isnull_or_others.json " );
343- assertJsonEqualsIgnoreId (
342+ String expected = loadExpectedPlan ("explain_isnull_or_others.yaml " );
343+ assertYamlEqualsIgnoreId (
344344 expected ,
345- explainQueryToString (
345+ explainQueryYaml (
346346 "source=opensearch-sql_test_index_account | where isnull(firstname) or gender = 'M'" ));
347347 }
348348
@@ -370,9 +370,9 @@ public void testPartialPushdownFilterWithIsNull() throws IOException {
370370 Locale .ROOT ,
371371 "source=%s | where isnull(address) and name='david'" ,
372372 TEST_INDEX_NESTED_SIMPLE );
373- var result = explainQueryToString (query );
374- String expected = loadExpectedPlan ("explain_partial_filter_isnull.json " );
375- assertJsonEqualsIgnoreId (expected , result );
373+ var result = explainQueryYaml (query );
374+ String expected = loadExpectedPlan ("explain_partial_filter_isnull.yaml " );
375+ assertYamlEqualsIgnoreId (expected , result );
376376 }
377377
378378 @ Test
@@ -381,9 +381,9 @@ public void testSkipScriptEncodingOnExtendedFormat() throws IOException {
381381 String query =
382382 "source=opensearch-sql_test_index_account | where address = '671 Bristol Street' and age -"
383383 + " 2 = 30 | fields firstname, age, address" ;
384- var result = explainQueryToString (query , true );
385- String expected = loadFromFile ( "expectedOutput/calcite/ explain_skip_script_encoding.json " );
386- assertJsonEqualsIgnoreId (expected , result );
384+ var result = explainQueryYaml (query );
385+ String expected = loadExpectedPlan ( " explain_skip_script_encoding.yaml " );
386+ assertYamlEqualsIgnoreId (expected , result );
387387 }
388388
389389 // Only for Calcite, as v2 gets unstable serialized string for function
@@ -441,42 +441,42 @@ public void testExplainWithTimechartCount() throws IOException {
441441
442442 @ Test
443443 public void testExplainTimechartPerSecond () throws IOException {
444- var result = explainQueryToString ("source=events | timechart span=2m per_second(cpu_usage)" );
444+ var result = explainQueryYaml ("source=events | timechart span=2m per_second(cpu_usage)" );
445445 assertTrue (
446446 result .contains (
447- "per_second(cpu_usage)=[DIVIDE(*($1, 1000.0E0), TIMESTAMPDIFF('MILLISECOND':VARCHAR ,"
448- + " $0, TIMESTAMPADD('MINUTE':VARCHAR , 2, $0)))]" ));
449- assertTrue (result .contains ("per_second(cpu_usage)=[SUM($0 )]" ));
447+ "per_second(cpu_usage)=[DIVIDE(*($1, 1000.0E0), TIMESTAMPDIFF('MILLISECOND', $0 ,"
448+ + " TIMESTAMPADD('MINUTE', 2, $0)))]" ));
449+ assertTrue (result .contains ("per_second(cpu_usage)=[SUM($1 )]" ));
450450 }
451451
452452 @ Test
453453 public void testExplainTimechartPerMinute () throws IOException {
454- var result = explainQueryToString ("source=events | timechart span=2m per_minute(cpu_usage)" );
454+ var result = explainQueryYaml ("source=events | timechart span=2m per_minute(cpu_usage)" );
455455 assertTrue (
456456 result .contains (
457- "per_minute(cpu_usage)=[DIVIDE(*($1, 60000.0E0), TIMESTAMPDIFF('MILLISECOND':VARCHAR ,"
458- + " $0, TIMESTAMPADD('MINUTE':VARCHAR , 2, $0)))]" ));
459- assertTrue (result .contains ("per_minute(cpu_usage)=[SUM($0 )]" ));
457+ "per_minute(cpu_usage)=[DIVIDE(*($1, 60000.0E0), TIMESTAMPDIFF('MILLISECOND', $0 ,"
458+ + " TIMESTAMPADD('MINUTE', 2, $0)))]" ));
459+ assertTrue (result .contains ("per_minute(cpu_usage)=[SUM($1 )]" ));
460460 }
461461
462462 @ Test
463463 public void testExplainTimechartPerHour () throws IOException {
464- var result = explainQueryToString ("source=events | timechart span=2m per_hour(cpu_usage)" );
464+ var result = explainQueryYaml ("source=events | timechart span=2m per_hour(cpu_usage)" );
465465 assertTrue (
466466 result .contains (
467- "per_hour(cpu_usage)=[DIVIDE(*($1, 3600000.0E0), TIMESTAMPDIFF('MILLISECOND':VARCHAR ,"
468- + " $0, TIMESTAMPADD('MINUTE':VARCHAR , 2, $0)))]" ));
469- assertTrue (result .contains ("per_hour(cpu_usage)=[SUM($0 )]" ));
467+ "per_hour(cpu_usage)=[DIVIDE(*($1, 3600000.0E0), TIMESTAMPDIFF('MILLISECOND', $0 ,"
468+ + " TIMESTAMPADD('MINUTE', 2, $0)))]" ));
469+ assertTrue (result .contains ("per_hour(cpu_usage)=[SUM($1 )]" ));
470470 }
471471
472472 @ Test
473473 public void testExplainTimechartPerDay () throws IOException {
474- var result = explainQueryToString ("source=events | timechart span=2m per_day(cpu_usage)" );
474+ var result = explainQueryYaml ("source=events | timechart span=2m per_day(cpu_usage)" );
475475 assertTrue (
476476 result .contains (
477- "per_day(cpu_usage)=[DIVIDE(*($1, 8.64E7), TIMESTAMPDIFF('MILLISECOND':VARCHAR , $0,"
478- + " TIMESTAMPADD('MINUTE':VARCHAR , 2, $0)))]" ));
479- assertTrue (result .contains ("per_day(cpu_usage)=[SUM($0 )]" ));
477+ "per_day(cpu_usage)=[DIVIDE(*($1, 8.64E7), TIMESTAMPDIFF('MILLISECOND', $0,"
478+ + " TIMESTAMPADD('MINUTE', 2, $0)))]" ));
479+ assertTrue (result .contains ("per_day(cpu_usage)=[SUM($1 )]" ));
480480 }
481481
482482 @ Test
@@ -504,10 +504,10 @@ public void supportPushDownScriptOnTextField() throws IOException {
504504
505505 @ Test
506506 public void testExplainBinWithBins () throws IOException {
507- String expected = loadExpectedPlan ("explain_bin_bins.json " );
508- assertJsonEqualsIgnoreId (
507+ String expected = loadExpectedPlan ("explain_bin_bins.yaml " );
508+ assertYamlEqualsIgnoreId (
509509 expected ,
510- explainQueryToString ("source=opensearch-sql_test_index_account | bin age bins=3 | head 5" ));
510+ explainQueryYaml ("source=opensearch-sql_test_index_account | bin age bins=3 | head 5" ));
511511 }
512512
513513 @ Test
@@ -554,19 +554,18 @@ public void testExplainBinWithSpan() throws IOException {
554554
555555 @ Test
556556 public void testExplainBinWithMinspan () throws IOException {
557- String expected = loadExpectedPlan ("explain_bin_minspan.json " );
558- assertJsonEqualsIgnoreId (
557+ String expected = loadExpectedPlan ("explain_bin_minspan.yaml " );
558+ assertYamlEqualsIgnoreId (
559559 expected ,
560- explainQueryToString (
561- "source=opensearch-sql_test_index_account | bin age minspan=5 | head 5" ));
560+ explainQueryYaml ("source=opensearch-sql_test_index_account | bin age minspan=5 | head 5" ));
562561 }
563562
564563 @ Test
565564 public void testExplainBinWithStartEnd () throws IOException {
566- String expected = loadExpectedPlan ("explain_bin_start_end.json " );
567- assertJsonEqualsIgnoreId (
565+ String expected = loadExpectedPlan ("explain_bin_start_end.yaml " );
566+ assertYamlEqualsIgnoreId (
568567 expected ,
569- explainQueryToString (
568+ explainQueryYaml (
570569 "source=opensearch-sql_test_index_account | bin balance start=0 end=100001 | head 5" ));
571570 }
572571
@@ -584,19 +583,19 @@ public void testExplainBinWithAligntime() throws IOException {
584583 public void testExplainCountEval () throws IOException {
585584 String query =
586585 "source=opensearch-sql_test_index_bank | stats count(eval(age > 30)) as mature_count" ;
587- var result = explainQueryToString (query );
588- String expected = loadExpectedPlan ("explain_count_eval_push.json " );
589- assertJsonEqualsIgnoreId (expected , result );
586+ var result = explainQueryYaml (query );
587+ String expected = loadExpectedPlan ("explain_count_eval_push.yaml " );
588+ assertYamlEqualsIgnoreId (expected , result );
590589 }
591590
592591 @ Test
593592 public void testExplainCountEvalComplex () throws IOException {
594593 String query =
595594 "source=opensearch-sql_test_index_bank | stats count(eval(age > 30 and age < 50)) as"
596595 + " mature_count" ;
597- var result = explainQueryToString (query );
598- String expected = loadExpectedPlan ("explain_count_eval_complex_push.json " );
599- assertJsonEqualsIgnoreId (expected , result );
596+ var result = explainQueryYaml (query );
597+ String expected = loadExpectedPlan ("explain_count_eval_complex_push.yaml " );
598+ assertYamlEqualsIgnoreId (expected , result );
600599 }
601600
602601 @ Test
@@ -762,9 +761,8 @@ public void testExplainRegexMatchInEvalWithOutScriptPushdown() throws IOExceptio
762761 String .format (
763762 "source=%s |eval has_hello = regexp_match(name, 'hello') | fields has_hello" ,
764763 TEST_INDEX_STRINGS );
765- var result = explainQueryToString (query );
766- String expected = loadFromFile ("expectedOutput/calcite/explain_regexp_match_in_eval.json" );
767- assertJsonEqualsIgnoreId (expected , result );
764+ var result = explainQueryYaml (query );
765+ assertYamlEqualsIgnoreId (loadExpectedPlan ("explain_regexp_match_in_eval.yaml" ), result );
768766 }
769767
770768 // Only for Calcite
@@ -1076,10 +1074,10 @@ public void testExplainAppendCommand() throws IOException {
10761074
10771075 @ Test
10781076 public void testExplainAppendPipeCommand () throws IOException {
1079- String expected = loadExpectedPlan ("explain_appendpipe_command.json " );
1080- assertJsonEqualsIgnoreId (
1077+ String expected = loadExpectedPlan ("explain_appendpipe_command.yaml " );
1078+ assertYamlEqualsIgnoreId (
10811079 expected ,
1082- explainQueryToString (
1080+ explainQueryYaml (
10831081 String .format (
10841082 Locale .ROOT ,
10851083 "source=%s | appendpipe [ stats count(balance) as cnt by gender ]" ,
@@ -1091,9 +1089,7 @@ public void testMvjoinExplain() throws IOException {
10911089 String query =
10921090 "source=opensearch-sql_test_index_account | eval result = mvjoin(array('a', 'b', 'c'), ',')"
10931091 + " | fields result | head 1" ;
1094- var result = explainQueryToString (query );
1095- String expected = loadExpectedPlan ("explain_mvjoin.json" );
1096- assertJsonEqualsIgnoreId (expected , result );
1092+ assertYamlEqualsIgnoreId (loadExpectedPlan ("explain_mvjoin.yaml" ), explainQueryYaml (query ));
10971093 }
10981094
10991095 @ Test
@@ -1110,50 +1106,43 @@ public void testPreventLimitPushdown() throws IOException {
11101106 @ Test
11111107 public void testPushdownLimitIntoAggregation () throws IOException {
11121108 enabledOnlyWhenPushdownIsEnabled ();
1113- String expected = loadExpectedPlan ("explain_limit_agg_pushdown.json" );
1114- assertJsonEqualsIgnoreId (
1115- expected ,
1116- explainQueryToString ("source=opensearch-sql_test_index_account | stats count() by state" ));
1109+ assertYamlEqualsIgnoreId (
1110+ loadExpectedPlan ("explain_limit_agg_pushdown.yaml" ),
1111+ explainQueryYaml ("source=opensearch-sql_test_index_account | stats count() by state" ));
11171112
1118- expected = loadExpectedPlan ("explain_limit_agg_pushdown2.yaml" );
11191113 assertYamlEqualsIgnoreId (
1120- expected ,
1114+ loadExpectedPlan ( "explain_limit_agg_pushdown2.yaml" ) ,
11211115 explainQueryYaml (
11221116 "source=opensearch-sql_test_index_account | stats count() by state | head 100" ));
11231117
1124- expected = loadExpectedPlan ("explain_limit_agg_pushdown3.json" );
1125- assertJsonEqualsIgnoreId (
1126- expected ,
1127- explainQueryToString (
1118+ assertYamlEqualsIgnoreId (
1119+ loadExpectedPlan ("explain_limit_agg_pushdown3.yaml" ),
1120+ explainQueryYaml (
11281121 "source=opensearch-sql_test_index_account | stats count() by state | head 100 | head 10"
11291122 + " from 10 " ));
11301123
1131- expected = loadExpectedPlan ("explain_limit_agg_pushdown4.yaml" );
11321124 assertYamlEqualsIgnoreId (
1133- expected ,
1125+ loadExpectedPlan ( "explain_limit_agg_pushdown4.yaml" ) ,
11341126 explainQueryYaml (
11351127 "source=opensearch-sql_test_index_account | stats count() by state | sort state | head"
11361128 + " 100 | head 10 from 10 " ));
11371129
1138- expected = loadExpectedPlan ("explain_limit_agg_pushdown_bucket_nullable1.yaml" );
11391130 assertYamlEqualsIgnoreId (
1140- expected ,
1131+ loadExpectedPlan ( "explain_limit_agg_pushdown_bucket_nullable1.yaml" ) ,
11411132 explainQueryYaml (
11421133 "source=opensearch-sql_test_index_account | stats bucket_nullable=false count() by"
11431134 + " state | head 100 | head 10 from 10 " ));
11441135
1145- expected = loadExpectedPlan ("explain_limit_agg_pushdown_bucket_nullable2.yaml" );
11461136 assertYamlEqualsIgnoreId (
1147- expected ,
1137+ loadExpectedPlan ( "explain_limit_agg_pushdown_bucket_nullable2.yaml" ) ,
11481138 explainQueryYaml (
11491139 "source=opensearch-sql_test_index_account | stats bucket_nullable=false count() by"
11501140 + " state | sort state | head 100 | head 10 from 10 " ));
11511141
1152- // Don't pushdown the combination of limit and sort
1153- expected = loadExpectedPlan ("explain_limit_agg_pushdown5.json" );
1154- assertJsonEqualsIgnoreId (
1155- expected ,
1156- explainQueryToString (
1142+ // Don't push down the combination of limit and sort
1143+ assertYamlEqualsIgnoreId (
1144+ loadExpectedPlan ("explain_limit_agg_pushdown5.yaml" ),
1145+ explainQueryYaml (
11571146 "source=opensearch-sql_test_index_account | stats count() by state | sort `count()` |"
11581147 + " head 100 | head 10 from 10 " ));
11591148 }
@@ -1626,9 +1615,9 @@ public void testStrftimeFunctionExplain() throws IOException {
16261615 String query =
16271616 "source=opensearch-sql_test_index_account | eval formatted_date = strftime(1521467703,"
16281617 + " '%Y-%m-%d') | fields formatted_date | head 1" ;
1629- var result = explainQueryToString (query );
1630- String expected = loadExpectedPlan ("explain_strftime_function.json " );
1631- assertJsonEqualsIgnoreId (expected , result );
1618+ var result = explainQueryYaml (query );
1619+ String expected = loadExpectedPlan ("explain_strftime_function.yaml " );
1620+ assertYamlEqualsIgnoreId (expected , result );
16321621 }
16331622
16341623 // Script generation is not stable in v2
@@ -1817,6 +1806,7 @@ public void testExplainChartWithLimits() throws IOException {
18171806 String .format (
18181807 "source=%s | chart limit=0 avg(balance) over state by gender" , TEST_INDEX_BANK )));
18191808
1809+ // TODO: Fix -- now it gets away from push-down
18201810 assertYamlEqualsIgnoreId (
18211811 loadExpectedPlan ("chart_use_other.yaml" ),
18221812 explainQueryYaml (
@@ -2145,13 +2135,12 @@ public void testAliasTypeField() throws IOException {
21452135 @ Test
21462136 public void testRexStandardizationForScript () throws IOException {
21472137 enabledOnlyWhenPushdownIsEnabled ();
2148- assertJsonEqualsIgnoreId (
2149- loadExpectedPlan ("explain_extended_for_standardization.json " ),
2150- explainQueryToString (
2138+ assertYamlEqualsIgnoreId (
2139+ loadExpectedPlan ("explain_extended_for_standardization.yaml " ),
2140+ explainQueryYaml (
21512141 String .format (
21522142 "source=%s | eval age_range = case(age < 30, 'u30', age >= 30 and age <= 40, 'u40'"
21532143 + " else 'u100') | stats avg(age) as avg_age by age_range" ,
2154- TEST_INDEX_BANK ),
2155- true ));
2144+ TEST_INDEX_BANK )));
21562145 }
21572146}
0 commit comments