Skip to content

Commit 312135e

Browse files
committed
update UT
Signed-off-by: Kai Huang <ahkcs@amazon.com>
1 parent 45f6b02 commit 312135e

2 files changed

Lines changed: 9 additions & 17 deletions

File tree

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

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -253,22 +253,16 @@ public void testHeadThenSortReverseNoOpt() {
253253
public void testSortFieldsReverse() {
254254
// Test backtracking: sort on SAL, then project only ENAME, then reverse
255255
// The sort field (SAL) is removed from schema by fields command
256-
// But reverse should still work by backtracking to find the sort
256+
// But reverse should still work by backtracking to find the sort and replacing it in-place
257257
String ppl = "source=EMP | sort SAL | fields ENAME | reverse";
258258
RelNode root = getRelNode(ppl);
259259
String expectedLogical =
260260
"LogicalProject(ENAME=[$1])\n"
261261
+ " LogicalSort(sort0=[$5], dir0=[DESC-nulls-last])\n"
262-
+ " LogicalSort(sort0=[$5], dir0=[ASC-nulls-first])\n"
263-
+ " LogicalTableScan(table=[[scott, EMP]])\n";
262+
+ " LogicalTableScan(table=[[scott, EMP]])\n";
264263
verifyLogical(root, expectedLogical);
265264

266-
String expectedSparkSql =
267-
"SELECT `ENAME`\n"
268-
+ "FROM (SELECT `EMPNO`, `ENAME`, `JOB`, `MGR`, `HIREDATE`, `SAL`, `COMM`, `DEPTNO`\n"
269-
+ "FROM `scott`.`EMP`\n"
270-
+ "ORDER BY `SAL`) `t`\n"
271-
+ "ORDER BY `SAL` DESC";
265+
String expectedSparkSql = "SELECT `ENAME`\n" + "FROM `scott`.`EMP`\n" + "ORDER BY `SAL` DESC";
272266
verifyPPLToSparkSQL(root, expectedSparkSql);
273267
}
274268

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

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -227,28 +227,26 @@ public void testStreamstatsReset() {
227227
public void testStreamstatsWithReverse() {
228228
String ppl = "source=EMP | streamstats max(SAL) by DEPTNO | reverse";
229229
RelNode root = getRelNode(ppl);
230+
// Reverse replaces the __stream_seq__ sort in-place via backtracking
230231
String expectedLogical =
231232
"LogicalProject(EMPNO=[$0], ENAME=[$1], JOB=[$2], MGR=[$3], HIREDATE=[$4], SAL=[$5],"
232233
+ " COMM=[$6], DEPTNO=[$7], max(SAL)=[$9])\n"
233234
+ " LogicalSort(sort0=[$8], dir0=[DESC])\n"
234-
+ " LogicalSort(sort0=[$8], dir0=[ASC])\n"
235-
+ " LogicalProject(EMPNO=[$0], ENAME=[$1], JOB=[$2], MGR=[$3], HIREDATE=[$4],"
235+
+ " LogicalProject(EMPNO=[$0], ENAME=[$1], JOB=[$2], MGR=[$3], HIREDATE=[$4],"
236236
+ " SAL=[$5], COMM=[$6], DEPTNO=[$7], __stream_seq__=[$8], max(SAL)=[MAX($5) OVER"
237237
+ " (PARTITION BY $7 ROWS UNBOUNDED PRECEDING)])\n"
238-
+ " LogicalProject(EMPNO=[$0], ENAME=[$1], JOB=[$2], MGR=[$3], HIREDATE=[$4],"
238+
+ " LogicalProject(EMPNO=[$0], ENAME=[$1], JOB=[$2], MGR=[$3], HIREDATE=[$4],"
239239
+ " SAL=[$5], COMM=[$6], DEPTNO=[$7], __stream_seq__=[ROW_NUMBER() OVER ()])\n"
240-
+ " LogicalTableScan(table=[[scott, EMP]])\n";
240+
+ " LogicalTableScan(table=[[scott, EMP]])\n";
241241
verifyLogical(root, expectedLogical);
242242

243243
String expectedSparkSql =
244-
"SELECT `EMPNO`, `ENAME`, `JOB`, `MGR`, `HIREDATE`, `SAL`, `COMM`, `DEPTNO`, `max(SAL)`\n"
245-
+ "FROM (SELECT `EMPNO`, `ENAME`, `JOB`, `MGR`, `HIREDATE`, `SAL`, `COMM`, `DEPTNO`,"
246-
+ " `__stream_seq__`, MAX(`SAL`) OVER (PARTITION BY `DEPTNO` ROWS BETWEEN UNBOUNDED"
244+
"SELECT `EMPNO`, `ENAME`, `JOB`, `MGR`, `HIREDATE`, `SAL`, `COMM`, `DEPTNO`,"
245+
+ " MAX(`SAL`) OVER (PARTITION BY `DEPTNO` ROWS BETWEEN UNBOUNDED"
247246
+ " PRECEDING AND CURRENT ROW) `max(SAL)`\n"
248247
+ "FROM (SELECT `EMPNO`, `ENAME`, `JOB`, `MGR`, `HIREDATE`, `SAL`, `COMM`, `DEPTNO`,"
249248
+ " ROW_NUMBER() OVER () `__stream_seq__`\n"
250249
+ "FROM `scott`.`EMP`) `t`\n"
251-
+ "ORDER BY `__stream_seq__` NULLS LAST) `t1`\n"
252250
+ "ORDER BY `__stream_seq__` DESC NULLS FIRST";
253251
verifyPPLToSparkSQL(root, expectedSparkSql);
254252
}

0 commit comments

Comments
 (0)