Skip to content

Commit a874386

Browse files
committed
Complete explain tests for no-pushdown cases
Signed-off-by: Yuanchun Shen <yuanchu@amazon.com>
1 parent 0975e80 commit a874386

20 files changed

Lines changed: 66 additions & 66 deletions

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

Lines changed: 6 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ public void testExplain() throws IOException {
4343
@Test
4444
public void testFilterPushDownExplain() throws IOException {
4545
String expected = loadExpectedPlan("explain_filter_push.json");
46-
4746
assertJsonEqualsIgnoreId(
4847
expected,
4948
explainQueryToString(
@@ -56,12 +55,7 @@ public void testFilterPushDownExplain() throws IOException {
5655

5756
@Test
5857
public void testFilterByCompareStringTimestampPushDownExplain() throws IOException {
59-
String expected =
60-
isCalciteEnabled()
61-
? loadFromFile(
62-
"expectedOutput/calcite/explain_filter_push_compare_timestamp_string.json")
63-
: loadFromFile("expectedOutput/ppl/explain_filter_push_compare_timestamp_string.json");
64-
58+
String expected = loadExpectedPlan("explain_filter_push_compare_timestamp_string.json");
6559
assertJsonEqualsIgnoreId(
6660
expected,
6761
explainQueryToString(
@@ -72,11 +66,7 @@ public void testFilterByCompareStringTimestampPushDownExplain() throws IOExcepti
7266

7367
@Test
7468
public void testFilterByCompareStringDatePushDownExplain() throws IOException {
75-
String expected =
76-
isCalciteEnabled()
77-
? loadFromFile("expectedOutput/calcite/explain_filter_push_compare_date_string.json")
78-
: loadFromFile("expectedOutput/ppl/explain_filter_push_compare_date_string.json");
79-
69+
String expected = loadExpectedPlan("explain_filter_push_compare_date_string.json");
8070
assertJsonEqualsIgnoreId(
8171
expected,
8272
explainQueryToString(
@@ -87,11 +77,7 @@ public void testFilterByCompareStringDatePushDownExplain() throws IOException {
8777

8878
@Test
8979
public void testFilterByCompareStringTimePushDownExplain() throws IOException {
90-
String expected =
91-
isCalciteEnabled()
92-
? loadFromFile("expectedOutput/calcite/explain_filter_push_compare_time_string.json")
93-
: loadFromFile("expectedOutput/ppl/explain_filter_push_compare_time_string.json");
94-
80+
String expected = loadExpectedPlan("explain_filter_push_compare_time_string.json");
9581
assertJsonEqualsIgnoreId(
9682
expected,
9783
explainQueryToString(
@@ -103,7 +89,6 @@ public void testFilterByCompareStringTimePushDownExplain() throws IOException {
10389
@Test
10490
public void testFilterAndAggPushDownExplain() throws IOException {
10591
String expected = loadExpectedPlan("explain_filter_agg_push.json");
106-
10792
assertJsonEqualsIgnoreId(
10893
expected,
10994
explainQueryToString(
@@ -115,7 +100,6 @@ public void testFilterAndAggPushDownExplain() throws IOException {
115100
@Test
116101
public void testSortPushDownExplain() throws IOException {
117102
String expected = loadExpectedPlan("explain_sort_push.json");
118-
119103
assertJsonEqualsIgnoreId(
120104
expected,
121105
explainQueryToString(
@@ -217,7 +201,6 @@ public void testLimitThenSortExplain() throws IOException {
217201
@Test
218202
public void testLimitPushDownExplain() throws IOException {
219203
String expected = loadExpectedPlan("explain_limit_push.json");
220-
221204
assertJsonEqualsIgnoreId(
222205
expected,
223206
explainQueryToString(
@@ -294,7 +277,6 @@ public void testMultipleLimitExplain() throws IOException {
294277
@Test
295278
public void testLimitWithMultipleOffsetPushdownExplain() throws IOException {
296279
String expected = loadExpectedPlan("explain_limit_offsets_push.json");
297-
298280
assertJsonEqualsIgnoreId(
299281
expected,
300282
explainQueryToString(
@@ -307,7 +289,6 @@ public void testLimitWithMultipleOffsetPushdownExplain() throws IOException {
307289
@Test
308290
public void testFillNullPushDownExplain() throws IOException {
309291
String expected = loadExpectedPlan("explain_fillnull_push.json");
310-
311292
assertJsonEqualsIgnoreId(
312293
expected,
313294
explainQueryToString(
@@ -318,7 +299,6 @@ public void testFillNullPushDownExplain() throws IOException {
318299
@Test
319300
public void testTrendlinePushDownExplain() throws IOException {
320301
String expected = loadExpectedPlan("explain_trendline_push.json");
321-
322302
assertJsonEqualsIgnoreId(
323303
expected,
324304
explainQueryToString(
@@ -331,7 +311,6 @@ public void testTrendlinePushDownExplain() throws IOException {
331311
@Test
332312
public void testTrendlineWithSortPushDownExplain() throws IOException {
333313
String expected = loadExpectedPlan("explain_trendline_sort_push.json");
334-
335314
// Sort will not be pushed down because there's a head before it.
336315
assertJsonEqualsIgnoreId(
337316
expected,
@@ -358,7 +337,6 @@ public void testExplainModeUnsupportedInV2() throws IOException {
358337
public void testPatternsSimplePatternMethodWithoutAggExplain() throws IOException {
359338
// TODO: Correct calcite expected result once pushdown is supported
360339
String expected = loadExpectedPlan("explain_patterns_simple_pattern.json");
361-
362340
assertJsonEqualsIgnoreId(
363341
expected,
364342
explainQueryToString("source=opensearch-sql_test_index_account | patterns email"));
@@ -368,7 +346,6 @@ public void testPatternsSimplePatternMethodWithoutAggExplain() throws IOExceptio
368346
public void testPatternsSimplePatternMethodWithAggPushDownExplain() throws IOException {
369347
// TODO: Correct calcite expected result once pushdown is supported
370348
String expected = loadExpectedPlan("explain_patterns_simple_pattern_agg_push.json");
371-
372349
assertJsonEqualsIgnoreId(
373350
expected,
374351
explainQueryToString(
@@ -379,7 +356,6 @@ public void testPatternsSimplePatternMethodWithAggPushDownExplain() throws IOExc
379356
public void testPatternsBrainMethodWithAggPushDownExplain() throws IOException {
380357
// TODO: Correct calcite expected result once pushdown is supported
381358
String expected = loadExpectedPlan("explain_patterns_brain_agg_push.json");
382-
383359
assertJsonEqualsIgnoreId(
384360
expected,
385361
explainQueryToString(
@@ -389,11 +365,7 @@ public void testPatternsBrainMethodWithAggPushDownExplain() throws IOException {
389365

390366
@Test
391367
public void testStatsBySpan() throws IOException {
392-
String expected =
393-
isCalciteEnabled()
394-
? loadFromFile("expectedOutput/calcite/explain_stats_by_span.json")
395-
: loadFromFile("expectedOutput/ppl/explain_stats_by_span.json");
396-
368+
String expected = loadExpectedPlan("explain_stats_by_span.json");
397369
assertJsonEqualsIgnoreId(
398370
expected,
399371
explainQueryToString(
@@ -402,21 +374,13 @@ public void testStatsBySpan() throws IOException {
402374

403375
@Test
404376
public void testStatsByTimeSpan() throws IOException {
405-
String expected =
406-
isCalciteEnabled()
407-
? loadFromFile("expectedOutput/calcite/explain_stats_by_timespan.json")
408-
: loadFromFile("expectedOutput/ppl/explain_stats_by_timespan.json");
409-
377+
String expected = loadExpectedPlan("explain_stats_by_timespan.json");
410378
assertJsonEqualsIgnoreId(
411379
expected,
412380
explainQueryToString(
413381
String.format("source=%s | stats count() by span(birthdate,1m)", TEST_INDEX_BANK)));
414382

415-
expected =
416-
isCalciteEnabled()
417-
? loadFromFile("expectedOutput/calcite/explain_stats_by_timespan2.json")
418-
: loadFromFile("expectedOutput/ppl/explain_stats_by_timespan2.json");
419-
383+
expected = loadExpectedPlan("explain_stats_by_timespan2.json");
420384
assertJsonEqualsIgnoreId(
421385
expected,
422386
explainQueryToString(
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"calcite": {
3+
"logical": "LogicalFilter(condition=[<($0, DATE('2018-11-09 00:00:00.000000000':VARCHAR))])\n LogicalFilter(condition=[>($0, DATE('2016-12-08 00:00:00.123456789':VARCHAR))])\n LogicalProject(yyyy-MM-dd=[$83])\n CalciteLogicalIndexScan(table=[[OpenSearch, opensearch-sql_test_index_date_formats]])\n",
4+
"physical": "EnumerableCalc(expr#0..94=[{inputs}], expr#95=[Sarg[('2016-12-08':VARCHAR..'2018-11-09':VARCHAR)]:VARCHAR], expr#96=[SEARCH($t83, $t95)], yyyy-MM-dd=[$t83], $condition=[$t96])\n CalciteEnumerableIndexScan(table=[[OpenSearch, opensearch-sql_test_index_date_formats]])\n"
5+
}
6+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"calcite": {
3+
"logical": "LogicalFilter(condition=[<($0, TIME('2018-11-09 19:00:00.123456789':VARCHAR))])\n LogicalFilter(condition=[>($0, TIME('2016-12-08 12:00:00.123456789':VARCHAR))])\n LogicalProject(custom_time=[$49])\n CalciteLogicalIndexScan(table=[[OpenSearch, opensearch-sql_test_index_date_formats]])\n",
4+
"physical": "EnumerableCalc(expr#0..94=[{inputs}], expr#95=[Sarg[('12:00:00.123456789':VARCHAR..'19:00:00.123456789':VARCHAR)]:VARCHAR], expr#96=[SEARCH($t49, $t95)], custom_time=[$t49], $condition=[$t96])\n CalciteEnumerableIndexScan(table=[[OpenSearch, opensearch-sql_test_index_date_formats]])\n"
5+
}
6+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"calcite": {
3+
"logical": "LogicalProject(account_number=[$0], firstname=[$1], address=[$2], birthdate=[$3], gender=[$4], city=[$5], lastname=[$6], balance=[$7], employer=[$8], state=[$9], age=[$10], email=[$11], male=[$12])\n LogicalFilter(condition=[<($3, TIMESTAMP('2018-11-09 00:00:00.000000000':VARCHAR))])\n LogicalFilter(condition=[>($3, TIMESTAMP('2016-12-08 00:00:00.000000000':VARCHAR))])\n CalciteLogicalIndexScan(table=[[OpenSearch, opensearch-sql_test_index_bank]])\n",
4+
"physical": "EnumerableCalc(expr#0..18=[{inputs}], expr#19=[Sarg[('2016-12-08 00:00:00':VARCHAR..'2018-11-09 00:00:00':VARCHAR)]:VARCHAR], expr#20=[SEARCH($t3, $t19)], proj#0..12=[{exprs}], $condition=[$t20])\n CalciteEnumerableIndexScan(table=[[OpenSearch, opensearch-sql_test_index_bank]])\n"
5+
}
6+
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"calcite": {
3-
"logical": "LogicalSort(sort0=[$0], dir0=[ASC])\n LogicalProject(age=[$8])\n LogicalSort(sort0=[$8], dir0=[ASC])\n LogicalSort(fetch=[5])\n CalciteLogicalIndexScan(table=[[OpenSearch, opensearch-sql_test_index_account]])\n",
4-
"physical": "EnumerableSort(sort0=[$0], dir0=[ASC])\n EnumerableCalc(expr#0..16=[{inputs}], age=[$t8])\n EnumerableLimit(fetch=[5])\n CalciteEnumerableIndexScan(table=[[OpenSearch, opensearch-sql_test_index_account]])\n"
3+
"logical": "LogicalSort(sort0=[$0], dir0=[ASC-nulls-first])\n LogicalProject(age=[$8])\n LogicalSort(sort0=[$8], dir0=[ASC-nulls-first])\n LogicalSort(fetch=[5])\n CalciteLogicalIndexScan(table=[[OpenSearch, opensearch-sql_test_index_account]])\n",
4+
"physical": "EnumerableSort(sort0=[$0], dir0=[ASC-nulls-first])\n EnumerableCalc(expr#0..16=[{inputs}], age=[$t8])\n EnumerableLimit(fetch=[5])\n CalciteEnumerableIndexScan(table=[[OpenSearch, opensearch-sql_test_index_account]])\n"
55
}
66
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"calcite": {
3-
"logical": "LogicalSort(sort0=[$3], sort1=[$4], sort2=[$2], dir0=[DESC], dir1=[DESC], dir2=[ASC])\n LogicalProject(account_number=[$0], firstname=[$1], address=[$2], balance=[$3], gender=[$4])\n LogicalSort(sort0=[$3], sort1=[$4], sort2=[$2], dir0=[DESC], dir1=[DESC], dir2=[ASC])\n LogicalSort(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[ASC], dir2=[ASC], dir3=[ASC])\n CalciteLogicalIndexScan(table=[[OpenSearch, opensearch-sql_test_index_account]])\n",
4-
"physical": "EnumerableSort(sort0=[$3], sort1=[$4], sort2=[$2], dir0=[DESC], dir1=[DESC], dir2=[ASC])\n EnumerableCalc(expr#0..16=[{inputs}], proj#0..4=[{exprs}])\n CalciteEnumerableIndexScan(table=[[OpenSearch, opensearch-sql_test_index_account]])\n"
3+
"logical": "LogicalSort(sort0=[$3], sort1=[$4], sort2=[$2], dir0=[DESC-nulls-last], dir1=[DESC-nulls-last], dir2=[ASC-nulls-first])\n LogicalProject(account_number=[$0], firstname=[$1], address=[$2], balance=[$3], gender=[$4])\n LogicalSort(sort0=[$3], sort1=[$4], sort2=[$2], dir0=[DESC-nulls-last], dir1=[DESC-nulls-last], dir2=[ASC-nulls-first])\n LogicalSort(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC-nulls-first], dir1=[ASC-nulls-first], dir2=[ASC-nulls-first], dir3=[ASC-nulls-first])\n CalciteLogicalIndexScan(table=[[OpenSearch, opensearch-sql_test_index_account]])\n",
4+
"physical": "EnumerableSort(sort0=[$3], sort1=[$4], sort2=[$2], dir0=[DESC-nulls-last], dir1=[DESC-nulls-last], dir2=[ASC-nulls-first])\n EnumerableCalc(expr#0..16=[{inputs}], proj#0..4=[{exprs}])\n CalciteEnumerableIndexScan(table=[[OpenSearch, opensearch-sql_test_index_account]])\n"
55
}
66
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"calcite": {
3-
"logical": "LogicalProject(age2=[$2])\n LogicalFilter(condition=[<=($3, 1)])\n LogicalProject(avg_age=[$0], state=[$1], age2=[$2], _row_number_=[ROW_NUMBER() OVER (PARTITION BY $2 ORDER BY $2)])\n LogicalFilter(condition=[IS NOT NULL($2)])\n LogicalProject(avg_age=[$0], state=[$1], age2=[+($0, 2)])\n LogicalSort(sort0=[$1], dir0=[ASC])\n LogicalProject(avg_age=[$2], state=[$0], city=[$1])\n LogicalAggregate(group=[{0, 1}], avg_age=[AVG($2)])\n LogicalProject(state=[$7], city=[$5], age=[$8])\n LogicalFilter(condition=[>($8, 30)])\n CalciteLogicalIndexScan(table=[[OpenSearch, opensearch-sql_test_index_account]])\n",
4-
"physical": "EnumerableCalc(expr#0..2=[{inputs}], expr#3=[1], expr#4=[<=($t2, $t3)], age2=[$t1], $condition=[$t4])\n EnumerableWindow(window#0=[window(partition {1} order by [1] rows between UNBOUNDED PRECEDING and CURRENT ROW aggs [ROW_NUMBER()])])\n EnumerableCalc(expr#0..3=[{inputs}], expr#4=[0], expr#5=[=($t3, $t4)], expr#6=[null:BIGINT], expr#7=[CASE($t5, $t6, $t2)], expr#8=[CAST($t7):DOUBLE], expr#9=[/($t8, $t3)], expr#10=[2], expr#11=[+($t9, $t10)], expr#12=[IS NOT NULL($t8)], state=[$t1], age2=[$t11], $condition=[$t12])\n EnumerableSort(sort0=[$1], dir0=[ASC])\n EnumerableAggregate(group=[{5, 7}], agg#0=[$SUM0($8)], agg#1=[COUNT($8)])\n EnumerableCalc(expr#0..16=[{inputs}], expr#17=[30], expr#18=[>($t8, $t17)], proj#0..16=[{exprs}], $condition=[$t18])\n CalciteEnumerableIndexScan(table=[[OpenSearch, opensearch-sql_test_index_account]])\n"
3+
"logical": "LogicalProject(age2=[$2])\n LogicalFilter(condition=[<=($3, 1)])\n LogicalProject(avg_age=[$0], state=[$1], age2=[$2], _row_number_=[ROW_NUMBER() OVER (PARTITION BY $2 ORDER BY $2)])\n LogicalFilter(condition=[IS NOT NULL($2)])\n LogicalProject(avg_age=[$0], state=[$1], age2=[+($0, 2)])\n LogicalSort(sort0=[$1], dir0=[ASC-nulls-first])\n LogicalProject(avg_age=[$2], state=[$0], city=[$1])\n LogicalAggregate(group=[{0, 1}], avg_age=[AVG($2)])\n LogicalProject(state=[$7], city=[$5], age=[$8])\n LogicalFilter(condition=[>($8, 30)])\n CalciteLogicalIndexScan(table=[[OpenSearch, opensearch-sql_test_index_account]])\n",
4+
"physical": "EnumerableCalc(expr#0..2=[{inputs}], expr#3=[1], expr#4=[<=($t2, $t3)], age2=[$t1], $condition=[$t4])\n EnumerableWindow(window#0=[window(partition {1} order by [1] rows between UNBOUNDED PRECEDING and CURRENT ROW aggs [ROW_NUMBER()])])\n EnumerableCalc(expr#0..3=[{inputs}], expr#4=[0], expr#5=[=($t3, $t4)], expr#6=[null:BIGINT], expr#7=[CASE($t5, $t6, $t2)], expr#8=[CAST($t7):DOUBLE], expr#9=[/($t8, $t3)], expr#10=[2], expr#11=[+($t9, $t10)], expr#12=[IS NOT NULL($t8)], state=[$t1], age2=[$t11], $condition=[$t12])\n EnumerableSort(sort0=[$1], dir0=[ASC-nulls-first])\n EnumerableAggregate(group=[{5, 7}], agg#0=[$SUM0($8)], agg#1=[COUNT($8)])\n EnumerableCalc(expr#0..16=[{inputs}], expr#17=[30], expr#18=[>($t8, $t17)], proj#0..16=[{exprs}], $condition=[$t18])\n CalciteEnumerableIndexScan(table=[[OpenSearch, opensearch-sql_test_index_account]])\n"
55
}
66
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"calcite": {
3-
"logical": "LogicalSort(sort0=[$0], dir0=[ASC])\n LogicalProject(avg_age=[$2], state=[$0], city=[$1])\n LogicalAggregate(group=[{0, 1}], avg_age=[AVG($2)])\n LogicalProject(state=[$7], city=[$5], age=[$8])\n CalciteLogicalIndexScan(table=[[OpenSearch, opensearch-sql_test_index_account]])\n",
4-
"physical": "EnumerableSort(sort0=[$0], dir0=[ASC])\n EnumerableCalc(expr#0..3=[{inputs}], expr#4=[0], expr#5=[=($t3, $t4)], expr#6=[null:BIGINT], expr#7=[CASE($t5, $t6, $t2)], expr#8=[CAST($t7):DOUBLE], expr#9=[/($t8, $t3)], avg_age=[$t9], state=[$t1], city=[$t0])\n EnumerableAggregate(group=[{5, 7}], agg#0=[$SUM0($8)], agg#1=[COUNT($8)])\n CalciteEnumerableIndexScan(table=[[OpenSearch, opensearch-sql_test_index_account]])\n"
3+
"logical": "LogicalSort(sort0=[$0], dir0=[ASC-nulls-first])\n LogicalProject(avg_age=[$2], state=[$0], city=[$1])\n LogicalAggregate(group=[{0, 1}], avg_age=[AVG($2)])\n LogicalProject(state=[$7], city=[$5], age=[$8])\n CalciteLogicalIndexScan(table=[[OpenSearch, opensearch-sql_test_index_account]])\n",
4+
"physical": "EnumerableSort(sort0=[$0], dir0=[ASC-nulls-first])\n EnumerableCalc(expr#0..3=[{inputs}], expr#4=[0], expr#5=[=($t3, $t4)], expr#6=[null:BIGINT], expr#7=[CASE($t5, $t6, $t2)], expr#8=[CAST($t7):DOUBLE], expr#9=[/($t8, $t3)], avg_age=[$t9], state=[$t1], city=[$t0])\n EnumerableAggregate(group=[{5, 7}], agg#0=[$SUM0($8)], agg#1=[COUNT($8)])\n CalciteEnumerableIndexScan(table=[[OpenSearch, opensearch-sql_test_index_account]])\n"
55
}
66
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"calcite": {
3-
"logical": "LogicalSort(sort0=[$0], dir0=[ASC])\n LogicalProject(age=[$8])\n LogicalFilter(condition=[>($8, 30)])\n LogicalSort(sort0=[$8], dir0=[ASC])\n CalciteLogicalIndexScan(table=[[OpenSearch, opensearch-sql_test_index_account]])\n",
4-
"physical": "EnumerableCalc(expr#0..16=[{inputs}], expr#17=[30], expr#18=[>($t8, $t17)], age=[$t8], $condition=[$t18])\n EnumerableSort(sort0=[$8], dir0=[ASC])\n CalciteEnumerableIndexScan(table=[[OpenSearch, opensearch-sql_test_index_account]])\n"
3+
"logical": "LogicalSort(sort0=[$0], dir0=[ASC-nulls-first])\n LogicalProject(age=[$8])\n LogicalFilter(condition=[>($8, 30)])\n LogicalSort(sort0=[$8], dir0=[ASC-nulls-first])\n CalciteLogicalIndexScan(table=[[OpenSearch, opensearch-sql_test_index_account]])\n",
4+
"physical": "EnumerableCalc(expr#0..16=[{inputs}], expr#17=[30], expr#18=[>($t8, $t17)], age=[$t8], $condition=[$t18])\n EnumerableSort(sort0=[$8], dir0=[ASC-nulls-first])\n CalciteEnumerableIndexScan(table=[[OpenSearch, opensearch-sql_test_index_account]])\n"
55
}
66
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"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": "EnumerableSort(sort0=[$0], dir0=[ASC])\n EnumerableCalc(expr#0..16=[{inputs}], alias=[$t1])\n CalciteEnumerableIndexScan(table=[[OpenSearch, opensearch-sql_test_index_account]])\n"
3+
"logical": "LogicalSort(sort0=[$0], dir0=[ASC-nulls-first])\n LogicalProject(alias=[$17])\n LogicalSort(sort0=[$17], dir0=[ASC-nulls-first])\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": "EnumerableSort(sort0=[$0], dir0=[ASC-nulls-first])\n EnumerableCalc(expr#0..16=[{inputs}], alias=[$t1])\n CalciteEnumerableIndexScan(table=[[OpenSearch, opensearch-sql_test_index_account]])\n"
55
}
66
}

0 commit comments

Comments
 (0)