Skip to content

Commit bc07aee

Browse files
committed
Test explaining sort after rename
Signed-off-by: Yuanchun Shen <yuanchu@amazon.com>
1 parent 89d487b commit bc07aee

3 files changed

Lines changed: 73 additions & 0 deletions

File tree

integ-test/src/test/java/org/opensearch/sql/ppl/ExplainIT.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,23 @@ public void testSortThenAggregatePushDownExplain() throws IOException {
142142
+ "| stats avg(balance) by state"));
143143
}
144144

145+
@Test
146+
public void testSortWithRenameExplain() throws IOException {
147+
String expected =
148+
isCalciteEnabled()
149+
? loadFromFile("expectedOutput/calcite/explain_sort_rename_push.json")
150+
: loadFromFile("expectedOutput/ppl/explain_sort_rename_push.json");
151+
152+
assertJsonEqualsIgnoreId(
153+
expected,
154+
explainQueryToString(
155+
"source=opensearch-sql_test_index_account "
156+
+ "| rename firstname as name "
157+
+ "| eval alias = name "
158+
+ "| sort alias "
159+
+ "| fields alias"));
160+
}
161+
145162
@Test
146163
public void testLimitPushDownExplain() throws IOException {
147164
String expected =
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"calcite": {
3+
"logical": "LogicalSort(sort0=[$0], dir0=[ASC])\n LogicalProject(alias=[$17])\n LogicalSort(sort0=[$17], dir0=[ASC])\n LogicalProject(account_number=[$0], name=[$1], address=[$2], balance=[$3], gender=[$4], city=[$5], employer=[$6], state=[$7], age=[$8], email=[$9], lastname=[$10], _id=[$11], _index=[$12], _score=[$13], _maxscore=[$14], _sort=[$15], _routing=[$16], alias=[$1])\n CalciteLogicalIndexScan(table=[[OpenSearch, opensearch-sql_test_index_account]])\n",
4+
"physical": "CalciteEnumerableIndexScan(table=[[OpenSearch, opensearch-sql_test_index_account]], PushDownContext=[[PROJECT->[firstname], SORT->[{\n \"firstname.keyword\" : {\n \"order\" : \"asc\",\n \"missing\" : \"_last\"\n }\n}]], OpenSearchRequestBuilder(sourceBuilder={\"from\":0,\"timeout\":\"1m\",\"_source\":{\"includes\":[\"firstname\"],\"excludes\":[]},\"sort\":[{\"firstname.keyword\":{\"order\":\"asc\",\"missing\":\"_last\"}}]}, requestedTotalSize=2147483647, pageSize=null, startFrom=0)])\n"
5+
}
6+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
{
2+
"root": {
3+
"name": "ProjectOperator",
4+
"description": {
5+
"fields": "[alias]"
6+
},
7+
"children": [
8+
{
9+
"name": "SortOperator",
10+
"description": {
11+
"sortList": {
12+
"alias": {
13+
"sortOrder": "ASC",
14+
"nullOrder": "NULL_FIRST"
15+
}
16+
}
17+
},
18+
"children": [
19+
{
20+
"name": "OpenSearchEvalOperator",
21+
"description": {
22+
"expressions": {
23+
"alias": "name"
24+
}
25+
},
26+
"children": [
27+
{
28+
"name": "RenameOperator",
29+
"description": {
30+
"mapping": {
31+
"firstname": "name"
32+
}
33+
},
34+
"children": [
35+
{
36+
"name": "OpenSearchIndexScan",
37+
"description": {
38+
"request": "OpenSearchQueryRequest(indexName=opensearch-sql_test_index_account, sourceBuilder={\"from\":0,\"size\":10000,\"timeout\":\"1m\"}, needClean=true, searchDone=false, pitId=s9y3QQEhb3BlbnNlYXJjaC1zcWxfdGVzdF9pbmRleF9hY2NvdW50Fndla1VpMi1kVHh5Qi1lYnhPQnlSbXcAFkU4Qm9UVURIUWI2a3pjNkhmQkxvc2cAAAAAAAAAAAsWcnUyVHZfNk1SeC1DMFNFdGtPcDN4QQEWd2VrVWkyLWRUeHlCLWVieE9CeVJtdwAA, cursorKeepAlive=1m, searchAfter=null, searchResponse=null)"
39+
},
40+
"children": []
41+
}
42+
]
43+
}
44+
]
45+
}
46+
]
47+
}
48+
]
49+
}
50+
}

0 commit comments

Comments
 (0)