Skip to content

Commit 52a2b73

Browse files
committed
update UT
Signed-off-by: Kai Huang <ahkcs@amazon.com>
1 parent 1fa7308 commit 52a2b73

2 files changed

Lines changed: 107 additions & 112 deletions

File tree

integ-test/src/test/java/org/opensearch/sql/calcite/CalciteNoPushdownIT.java

Lines changed: 91 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -18,96 +18,97 @@
1818
* <p>Individual tests in this suite will be executed independently with pushdown enabled.
1919
*/
2020
@RunWith(Suite.class)
21-
@Suite.SuiteClasses({CalciteExplainIT.class
22-
// CalciteAddTotalsCommandIT.class,
23-
// CalciteAddColTotalsCommandIT.class,
24-
// CalciteArrayFunctionIT.class,
25-
// CalciteBinCommandIT.class,
26-
// CalciteConvertTZFunctionIT.class,
27-
// CalciteCsvFormatIT.class,
28-
// CalciteDataTypeIT.class,
29-
// CalciteDateTimeComparisonIT.class,
30-
// CalciteDateTimeFunctionIT.class,
31-
// CalciteDateTimeImplementationIT.class,
32-
// CalciteDedupCommandIT.class,
33-
// CalciteDescribeCommandIT.class,
34-
// CalciteExpandCommandIT.class,
35-
// CalciteFieldsCommandIT.class,
36-
// CalciteFillNullCommandIT.class,
37-
// CalciteFlattenCommandIT.class,
38-
// CalciteFlattenDocValueIT.class,
39-
// CalciteGeoIpFunctionsIT.class,
40-
// CalciteGeoPointFormatsIT.class,
41-
// CalciteHeadCommandIT.class,
42-
// CalciteInformationSchemaCommandIT.class,
43-
// CalciteIPComparisonIT.class,
44-
// CalciteIPFunctionsIT.class,
45-
// CalciteJsonFunctionsIT.class,
46-
// CalciteLegacyAPICompatibilityIT.class,
47-
// CalciteLikeQueryIT.class,
48-
// CalciteMathematicalFunctionIT.class,
49-
// CalciteMultisearchCommandIT.class,
50-
// CalciteMultiValueStatsIT.class,
51-
// CalciteNewAddedCommandsIT.class,
52-
// CalciteNowLikeFunctionIT.class,
53-
// CalciteObjectFieldOperateIT.class,
54-
// CalciteOperatorIT.class,
55-
// CalciteParseCommandIT.class,
56-
// CalcitePPLAggregationIT.class,
57-
// CalcitePPLAppendcolIT.class,
58-
// CalcitePPLAppendCommandIT.class,
59-
// CalcitePPLBasicIT.class,
60-
// CalcitePPLBuiltinDatetimeFunctionInvalidIT.class,
61-
// CalcitePPLBuiltinFunctionIT.class,
62-
// CalcitePPLBuiltinFunctionsNullIT.class,
63-
// CalcitePPLCaseFunctionIT.class,
64-
// CalcitePPLCastFunctionIT.class,
65-
// CalcitePPLConditionBuiltinFunctionIT.class,
66-
// CalcitePPLCryptographicFunctionIT.class,
67-
// CalcitePPLDedupIT.class,
68-
// CalcitePPLEventstatsIT.class,
69-
// CalciteStreamstatsCommandIT.class,
70-
// CalcitePPLExistsSubqueryIT.class,
71-
// CalcitePPLExplainIT.class,
72-
// CalcitePPLFillnullIT.class,
73-
// CalcitePPLGrokIT.class,
74-
// CalcitePPLInSubqueryIT.class,
75-
// CalcitePPLIPFunctionIT.class,
76-
// CalcitePPLJoinIT.class,
77-
// CalcitePPLJsonBuiltinFunctionIT.class,
78-
// CalcitePPLLookupIT.class,
79-
// CalcitePPLParseIT.class,
80-
// CalcitePPLPatternsIT.class,
81-
// CalcitePPLPluginIT.class,
82-
// CalcitePPLRenameIT.class,
83-
// CalcitePPLScalarSubqueryIT.class,
84-
// CalcitePPLSortIT.class,
85-
// CalcitePPLSpathCommandIT.class,
86-
// CalcitePPLStringBuiltinFunctionIT.class,
87-
// CalcitePPLTrendlineIT.class,
88-
// CalcitePrometheusDataSourceCommandsIT.class,
89-
// CalciteQueryAnalysisIT.class,
90-
// CalciteRareCommandIT.class,
91-
// CalciteRegexCommandIT.class,
92-
// CalciteReverseCommandIT.class,
93-
// CalciteRexCommandIT.class,
94-
// CalciteRenameCommandIT.class,
95-
// CalciteReplaceCommandIT.class,
96-
// CalciteResourceMonitorIT.class,
97-
// CalciteSearchCommandIT.class,
98-
// CalciteSettingsIT.class,
99-
// CalciteShowDataSourcesCommandIT.class,
100-
// CalciteSortCommandIT.class,
101-
// CalciteStatsCommandIT.class,
102-
// CalciteSystemFunctionIT.class,
103-
// CalciteTextFunctionIT.class,
104-
// CalciteTopCommandIT.class,
105-
// CalciteTrendlineCommandIT.class,
106-
// CalciteTransposeCommandIT.class,
107-
// CalciteVisualizationFormatIT.class,
108-
// CalciteWhereCommandIT.class,
109-
// CalcitePPLTpchIT.class,
110-
// CalciteMvCombineCommandIT.class
21+
@Suite.SuiteClasses({
22+
CalciteExplainIT.class,
23+
CalciteAddTotalsCommandIT.class,
24+
CalciteAddColTotalsCommandIT.class,
25+
CalciteArrayFunctionIT.class,
26+
CalciteBinCommandIT.class,
27+
CalciteConvertTZFunctionIT.class,
28+
CalciteCsvFormatIT.class,
29+
CalciteDataTypeIT.class,
30+
CalciteDateTimeComparisonIT.class,
31+
CalciteDateTimeFunctionIT.class,
32+
CalciteDateTimeImplementationIT.class,
33+
CalciteDedupCommandIT.class,
34+
CalciteDescribeCommandIT.class,
35+
CalciteExpandCommandIT.class,
36+
CalciteFieldsCommandIT.class,
37+
CalciteFillNullCommandIT.class,
38+
CalciteFlattenCommandIT.class,
39+
CalciteFlattenDocValueIT.class,
40+
CalciteGeoIpFunctionsIT.class,
41+
CalciteGeoPointFormatsIT.class,
42+
CalciteHeadCommandIT.class,
43+
CalciteInformationSchemaCommandIT.class,
44+
CalciteIPComparisonIT.class,
45+
CalciteIPFunctionsIT.class,
46+
CalciteJsonFunctionsIT.class,
47+
CalciteLegacyAPICompatibilityIT.class,
48+
CalciteLikeQueryIT.class,
49+
CalciteMathematicalFunctionIT.class,
50+
CalciteMultisearchCommandIT.class,
51+
CalciteMultiValueStatsIT.class,
52+
CalciteNewAddedCommandsIT.class,
53+
CalciteNowLikeFunctionIT.class,
54+
CalciteObjectFieldOperateIT.class,
55+
CalciteOperatorIT.class,
56+
CalciteParseCommandIT.class,
57+
CalcitePPLAggregationIT.class,
58+
CalcitePPLAppendcolIT.class,
59+
CalcitePPLAppendCommandIT.class,
60+
CalcitePPLBasicIT.class,
61+
CalcitePPLBuiltinDatetimeFunctionInvalidIT.class,
62+
CalcitePPLBuiltinFunctionIT.class,
63+
CalcitePPLBuiltinFunctionsNullIT.class,
64+
CalcitePPLCaseFunctionIT.class,
65+
CalcitePPLCastFunctionIT.class,
66+
CalcitePPLConditionBuiltinFunctionIT.class,
67+
CalcitePPLCryptographicFunctionIT.class,
68+
CalcitePPLDedupIT.class,
69+
CalcitePPLEventstatsIT.class,
70+
CalciteStreamstatsCommandIT.class,
71+
CalcitePPLExistsSubqueryIT.class,
72+
CalcitePPLExplainIT.class,
73+
CalcitePPLFillnullIT.class,
74+
CalcitePPLGrokIT.class,
75+
CalcitePPLInSubqueryIT.class,
76+
CalcitePPLIPFunctionIT.class,
77+
CalcitePPLJoinIT.class,
78+
CalcitePPLJsonBuiltinFunctionIT.class,
79+
CalcitePPLLookupIT.class,
80+
CalcitePPLParseIT.class,
81+
CalcitePPLPatternsIT.class,
82+
CalcitePPLPluginIT.class,
83+
CalcitePPLRenameIT.class,
84+
CalcitePPLScalarSubqueryIT.class,
85+
CalcitePPLSortIT.class,
86+
CalcitePPLSpathCommandIT.class,
87+
CalcitePPLStringBuiltinFunctionIT.class,
88+
CalcitePPLTrendlineIT.class,
89+
CalcitePrometheusDataSourceCommandsIT.class,
90+
CalciteQueryAnalysisIT.class,
91+
CalciteRareCommandIT.class,
92+
CalciteRegexCommandIT.class,
93+
CalciteReverseCommandIT.class,
94+
CalciteRexCommandIT.class,
95+
CalciteRenameCommandIT.class,
96+
CalciteReplaceCommandIT.class,
97+
CalciteResourceMonitorIT.class,
98+
CalciteSearchCommandIT.class,
99+
CalciteSettingsIT.class,
100+
CalciteShowDataSourcesCommandIT.class,
101+
CalciteSortCommandIT.class,
102+
CalciteStatsCommandIT.class,
103+
CalciteSystemFunctionIT.class,
104+
CalciteTextFunctionIT.class,
105+
CalciteTopCommandIT.class,
106+
CalciteTrendlineCommandIT.class,
107+
CalciteTransposeCommandIT.class,
108+
CalciteVisualizationFormatIT.class,
109+
CalciteWhereCommandIT.class,
110+
CalcitePPLTpchIT.class,
111+
CalciteMvCombineCommandIT.class
111112
})
112113
public class CalciteNoPushdownIT {
113114
private static boolean wasPushdownEnabled;

ppl/src/test/java/org/opensearch/sql/ppl/calcite/CalcitePPLTimechartTest.java

Lines changed: 16 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -373,25 +373,22 @@ public void testTimechartWithReverse() {
373373
// Reverse should flip it to DESC
374374
String ppl = "source=events | timechart count() | reverse";
375375
RelNode root = getRelNode(ppl);
376-
// The plan should have two sorts: original ASC from timechart, then DESC from reverse
376+
// Reverse replaces the timechart's ASC sort in-place with DESC
377377
String expectedLogical =
378378
"LogicalSort(sort0=[$0], dir0=[DESC])\n"
379-
+ " LogicalSort(sort0=[$0], dir0=[ASC])\n"
380-
+ " LogicalProject(@timestamp=[$0], count()=[$1])\n"
381-
+ " LogicalAggregate(group=[{0}], count()=[COUNT()])\n"
382-
+ " LogicalProject(@timestamp0=[SPAN($0, 1, 'm')])\n"
383-
+ " LogicalFilter(condition=[IS NOT NULL($0)])\n"
384-
+ " LogicalTableScan(table=[[scott, events]])\n";
379+
+ " LogicalProject(@timestamp=[$0], count()=[$1])\n"
380+
+ " LogicalAggregate(group=[{0}], count()=[COUNT()])\n"
381+
+ " LogicalProject(@timestamp0=[SPAN($0, 1, 'm')])\n"
382+
+ " LogicalFilter(condition=[IS NOT NULL($0)])\n"
383+
+ " LogicalTableScan(table=[[scott, events]])\n";
385384
verifyLogical(root, expectedLogical);
386385

387386
String expectedSparkSql =
388-
"SELECT *\n"
389-
+ "FROM (SELECT SPAN(`@timestamp`, 1, 'm') `@timestamp`, COUNT(*) `count()`\n"
387+
"SELECT SPAN(`@timestamp`, 1, 'm') `@timestamp`, COUNT(*) `count()`\n"
390388
+ "FROM `scott`.`events`\n"
391389
+ "WHERE `@timestamp` IS NOT NULL\n"
392390
+ "GROUP BY SPAN(`@timestamp`, 1, 'm')\n"
393-
+ "ORDER BY 1 NULLS LAST) `t3`\n"
394-
+ "ORDER BY `@timestamp` DESC NULLS FIRST";
391+
+ "ORDER BY 1 DESC NULLS FIRST";
395392
verifyPPLToSparkSQL(root, expectedSparkSql);
396393
}
397394

@@ -402,25 +399,22 @@ public void testTimechartWithCustomTimefieldAndReverse() {
402399
String ppl = "source=events | timechart timefield=created_at span=1month count() | reverse";
403400
RelNode root = getRelNode(ppl);
404401

405-
// Verify the logical plan shows two sorts: ASC from timechart, DESC from reverse
402+
// Reverse replaces the timechart's ASC sort in-place with DESC
406403
String expectedLogical =
407404
"LogicalSort(sort0=[$0], dir0=[DESC])\n"
408-
+ " LogicalSort(sort0=[$0], dir0=[ASC])\n"
409-
+ " LogicalProject(created_at=[$0], count()=[$1])\n"
410-
+ " LogicalAggregate(group=[{0}], count()=[COUNT()])\n"
411-
+ " LogicalProject(created_at0=[SPAN($1, 1, 'M')])\n"
412-
+ " LogicalFilter(condition=[IS NOT NULL($1)])\n"
413-
+ " LogicalTableScan(table=[[scott, events]])\n";
405+
+ " LogicalProject(created_at=[$0], count()=[$1])\n"
406+
+ " LogicalAggregate(group=[{0}], count()=[COUNT()])\n"
407+
+ " LogicalProject(created_at0=[SPAN($1, 1, 'M')])\n"
408+
+ " LogicalFilter(condition=[IS NOT NULL($1)])\n"
409+
+ " LogicalTableScan(table=[[scott, events]])\n";
414410
verifyLogical(root, expectedLogical);
415411

416412
String expectedSparkSql =
417-
"SELECT *\n"
418-
+ "FROM (SELECT SPAN(`created_at`, 1, 'M') `created_at`, COUNT(*) `count()`\n"
413+
"SELECT SPAN(`created_at`, 1, 'M') `created_at`, COUNT(*) `count()`\n"
419414
+ "FROM `scott`.`events`\n"
420415
+ "WHERE `created_at` IS NOT NULL\n"
421416
+ "GROUP BY SPAN(`created_at`, 1, 'M')\n"
422-
+ "ORDER BY 1 NULLS LAST) `t3`\n"
423-
+ "ORDER BY `created_at` DESC NULLS FIRST";
417+
+ "ORDER BY 1 DESC NULLS FIRST";
424418
verifyPPLToSparkSQL(root, expectedSparkSql);
425419
}
426420

0 commit comments

Comments
 (0)