Skip to content

Commit e9534d0

Browse files
committed
Fix no pushdown ITs
Signed-off-by: Yuanchun Shen <yuanchu@amazon.com>
1 parent 0c90718 commit e9534d0

57 files changed

Lines changed: 113 additions & 106 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

integ-test/src/test/java/org/opensearch/sql/calcite/remote/CalcitePPLAppendcolIT.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ public void init() throws Exception {
2626

2727
@Test
2828
public void testAppendCol() throws IOException {
29+
// Although the plans are identical, not pushing down resulting the cnt in the first two rows
30+
// being null
31+
enabledOnlyWhenPushdownIsEnabled();
2932
JSONObject actual =
3033
executeQuery(
3134
String.format(
@@ -55,6 +58,9 @@ public void testAppendCol() throws IOException {
5558

5659
@Test
5760
public void testAppendColOverride() throws IOException {
61+
// Although the plans are identical, not pushing down resulting the cnt in the first two rows
62+
// being null
63+
enabledOnlyWhenPushdownIsEnabled();
5864
JSONObject actual =
5965
executeQuery(
6066
String.format(

integ-test/src/test/java/org/opensearch/sql/calcite/remote/CalcitePPLExplainIT.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
package org.opensearch.sql.calcite.remote;
77

88
import static org.opensearch.sql.util.MatcherUtils.assertJsonEquals;
9+
import static org.opensearch.sql.util.MatcherUtils.assertYamlEqualsIgnoreId;
910

1011
import java.io.IOException;
1112
import org.junit.jupiter.api.Test;
@@ -33,13 +34,9 @@ public void init() throws Exception {
3334

3435
@Test
3536
public void testExplainCommand() throws IOException {
36-
var result = explainQueryToString("source=test | where age = 20 | fields name, age");
37-
String expected =
38-
!isPushdownDisabled()
39-
? loadFromFile("expectedOutput/calcite/explain_filter_w_pushdown.json")
40-
: loadFromFile("expectedOutput/calcite/explain_filter_wo_pushdown.json");
41-
42-
assertJsonEquals(expected, result);
37+
var result = explainQueryYaml("source=test | where age = 20 | fields name, age");
38+
String expected = loadExpectedPlan("explain_filter.yaml");
39+
assertYamlEqualsIgnoreId(expected, result);
4340
}
4441

4542
@Test
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
calcite:
2+
logical: |
3+
LogicalSystemLimit(fetch=[10000], type=[QUERY_SIZE_LIMIT])
4+
LogicalProject(name=[$0], age=[$1])
5+
LogicalFilter(condition=[=($1, SAFE_CAST(20:BIGINT))])
6+
CalciteLogicalIndexScan(table=[[OpenSearch, test]])
7+
physical: |
8+
CalciteEnumerableIndexScan(table=[[OpenSearch, test]], PushDownContext=[[PROJECT->[name, age], FILTER->=($1, 20), LIMIT->10000], OpenSearchRequestBuilder(sourceBuilder={"from":0,"size":10000,"timeout":"1m","query":{"term":{"age":{"value":20,"boost":1.0}}},"_source":{"includes":["name","age"],"excludes":[]}}, requestedTotalSize=10000, pageSize=null, startFrom=0)])

integ-test/src/test/resources/expectedOutput/calcite/explain_filter_w_pushdown.json

Lines changed: 0 additions & 6 deletions
This file was deleted.

integ-test/src/test/resources/expectedOutput/calcite/explain_filter_wo_pushdown.json

Lines changed: 0 additions & 6 deletions
This file was deleted.

integ-test/src/test/resources/expectedOutput/calcite_no_pushdown/agg_case_cannot_push.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ calcite:
33
LogicalSystemLimit(fetch=[10000], type=[QUERY_SIZE_LIMIT])
44
LogicalProject(avg_age=[$1], age_range=[$0])
55
LogicalAggregate(group=[{0}], avg_age=[AVG($1)])
6-
LogicalProject($f0=[CASE(<($10, 30), 'u30':VARCHAR, SEARCH($10, Sarg[[30..40]]), 'u40':VARCHAR, 'u100':VARCHAR)], age=[$10])
6+
LogicalProject(age_range=[CASE(<($10, 30), 'u30':VARCHAR, SEARCH($10, Sarg[[30..40]]), 'u40':VARCHAR, 'u100':VARCHAR)], age=[$10])
77
CalciteLogicalIndexScan(table=[[OpenSearch, opensearch-sql_test_index_bank]])
88
physical: |
99
EnumerableLimit(fetch=[10000])
1010
EnumerableCalc(expr#0..2=[{inputs}], expr#3=[0], expr#4=[=($t2, $t3)], expr#5=[null:BIGINT], expr#6=[CASE($t4, $t5, $t1)], expr#7=[CAST($t6):DOUBLE], expr#8=[/($t7, $t2)], avg_age=[$t8], age_range=[$t0])
1111
EnumerableAggregate(group=[{0}], agg#0=[$SUM0($1)], agg#1=[COUNT($1)])
12-
EnumerableCalc(expr#0..18=[{inputs}], expr#19=[30], expr#20=[<($t10, $t19)], expr#21=['u30':VARCHAR], expr#22=[Sarg[[30..40]]], expr#23=[SEARCH($t10, $t22)], expr#24=['u40':VARCHAR], expr#25=['u100':VARCHAR], expr#26=[CASE($t20, $t21, $t23, $t24, $t25)], $f0=[$t26], age=[$t10])
12+
EnumerableCalc(expr#0..18=[{inputs}], expr#19=[30], expr#20=[<($t10, $t19)], expr#21=['u30':VARCHAR], expr#22=[Sarg[[30..40]]], expr#23=[SEARCH($t10, $t22)], expr#24=['u40':VARCHAR], expr#25=['u100':VARCHAR], expr#26=[CASE($t20, $t21, $t23, $t24, $t25)], age_range=[$t26], age=[$t10])
1313
CalciteEnumerableIndexScan(table=[[OpenSearch, opensearch-sql_test_index_bank]])

integ-test/src/test/resources/expectedOutput/calcite_no_pushdown/agg_case_composite_cannot_push.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ calcite:
33
LogicalSystemLimit(fetch=[10000], type=[QUERY_SIZE_LIMIT])
44
LogicalProject(avg_balance=[$2], age_range=[$0], state=[$1])
55
LogicalAggregate(group=[{0, 1}], avg_balance=[AVG($2)])
6-
LogicalProject($f0=[CASE(<($10, 35), 'u35':VARCHAR, $11)], state=[$9], balance=[$7])
6+
LogicalProject(age_range=[CASE(<($10, 35), 'u35':VARCHAR, $11)], state=[$9], balance=[$7])
77
CalciteLogicalIndexScan(table=[[OpenSearch, opensearch-sql_test_index_bank]])
88
physical: |
99
EnumerableLimit(fetch=[10000])
1010
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_balance=[$t9], age_range=[$t0], state=[$t1])
1111
EnumerableAggregate(group=[{0, 1}], agg#0=[$SUM0($2)], agg#1=[COUNT($2)])
12-
EnumerableCalc(expr#0..18=[{inputs}], expr#19=[35], expr#20=[<($t10, $t19)], expr#21=['u35':VARCHAR], expr#22=[CASE($t20, $t21, $t11)], $f0=[$t22], state=[$t9], balance=[$t7])
12+
EnumerableCalc(expr#0..18=[{inputs}], expr#19=[35], expr#20=[<($t10, $t19)], expr#21=['u35':VARCHAR], expr#22=[CASE($t20, $t21, $t11)], age_range=[$t22], state=[$t9], balance=[$t7])
1313
CalciteEnumerableIndexScan(table=[[OpenSearch, opensearch-sql_test_index_bank]])

integ-test/src/test/resources/expectedOutput/calcite_no_pushdown/agg_case_num_res_cannot_push.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ calcite:
33
LogicalSystemLimit(fetch=[10000], type=[QUERY_SIZE_LIMIT])
44
LogicalProject(count()=[$1], age_range=[$0])
55
LogicalAggregate(group=[{0}], count()=[COUNT()])
6-
LogicalProject($f0=[CASE(<($10, 30), 30, 100)])
6+
LogicalProject(age_range=[CASE(<($10, 30), 30, 100)])
77
CalciteLogicalIndexScan(table=[[OpenSearch, opensearch-sql_test_index_bank]])
88
physical: |
99
EnumerableLimit(fetch=[10000])
1010
EnumerableCalc(expr#0..1=[{inputs}], count()=[$t1], age_range=[$t0])
1111
EnumerableAggregate(group=[{0}], count()=[COUNT()])
12-
EnumerableCalc(expr#0..18=[{inputs}], expr#19=[30], expr#20=[<($t10, $t19)], expr#21=[100], expr#22=[CASE($t20, $t19, $t21)], $f0=[$t22])
12+
EnumerableCalc(expr#0..18=[{inputs}], expr#19=[30], expr#20=[<($t10, $t19)], expr#21=[100], expr#22=[CASE($t20, $t19, $t21)], age_range=[$t22])
1313
CalciteEnumerableIndexScan(table=[[OpenSearch, opensearch-sql_test_index_bank]])

integ-test/src/test/resources/expectedOutput/calcite_no_pushdown/agg_composite2_range_count_push.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ calcite:
33
LogicalSystemLimit(fetch=[10000], type=[QUERY_SIZE_LIMIT])
44
LogicalProject(avg(balance)=[$3], count()=[$4], age_range=[$0], state=[$1], gender=[$2])
55
LogicalAggregate(group=[{0, 1, 2}], avg(balance)=[AVG($3)], count()=[COUNT()])
6-
LogicalProject($f0=[CASE(<($10, 30), 'u30':VARCHAR, 'a30':VARCHAR)], state=[$9], gender=[$4], balance=[$7])
6+
LogicalProject(age_range=[CASE(<($10, 30), 'u30':VARCHAR, 'a30':VARCHAR)], state=[$9], gender=[$4], balance=[$7])
77
CalciteLogicalIndexScan(table=[[OpenSearch, opensearch-sql_test_index_bank]])
88
physical: |
99
EnumerableLimit(fetch=[10000])
1010
EnumerableCalc(expr#0..5=[{inputs}], expr#6=[0], expr#7=[=($t4, $t6)], expr#8=[null:BIGINT], expr#9=[CASE($t7, $t8, $t3)], expr#10=[CAST($t9):DOUBLE], expr#11=[/($t10, $t4)], avg(balance)=[$t11], count()=[$t5], age_range=[$t0], state=[$t1], gender=[$t2])
1111
EnumerableAggregate(group=[{0, 1, 2}], agg#0=[$SUM0($3)], agg#1=[COUNT($3)], count()=[COUNT()])
12-
EnumerableCalc(expr#0..18=[{inputs}], expr#19=[30], expr#20=[<($t10, $t19)], expr#21=['u30':VARCHAR], expr#22=['a30':VARCHAR], expr#23=[CASE($t20, $t21, $t22)], $f0=[$t23], state=[$t9], gender=[$t4], balance=[$t7])
12+
EnumerableCalc(expr#0..18=[{inputs}], expr#19=[30], expr#20=[<($t10, $t19)], expr#21=['u30':VARCHAR], expr#22=['a30':VARCHAR], expr#23=[CASE($t20, $t21, $t22)], age_range=[$t23], state=[$t9], gender=[$t4], balance=[$t7])
1313
CalciteEnumerableIndexScan(table=[[OpenSearch, opensearch-sql_test_index_bank]])

integ-test/src/test/resources/expectedOutput/calcite_no_pushdown/agg_composite_date_range_push.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ calcite:
33
LogicalSystemLimit(fetch=[10000], type=[QUERY_SIZE_LIMIT])
44
LogicalProject(avg(value)=[$2], span(@timestamp,1h)=[$1], value_range=[$0])
55
LogicalAggregate(group=[{0, 1}], avg(value)=[AVG($2)])
6-
LogicalProject(value_range=[$10], $f1=[SPAN($0, 1, 'h')], value=[$2])
6+
LogicalProject(value_range=[$10], span(@timestamp,1h)=[SPAN($0, 1, 'h')], value=[$2])
77
LogicalFilter(condition=[IS NOT NULL($0)])
88
LogicalProject(@timestamp=[$0], category=[$1], value=[$2], timestamp=[$3], _id=[$4], _index=[$5], _score=[$6], _maxscore=[$7], _sort=[$8], _routing=[$9], value_range=[CASE(<($2, 7000), 'small':VARCHAR, 'large':VARCHAR)])
99
CalciteLogicalIndexScan(table=[[OpenSearch, opensearch-sql_test_index_time_data]])
1010
physical: |
1111
EnumerableLimit(fetch=[10000])
1212
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(value)=[$t9], span(@timestamp,1h)=[$t1], value_range=[$t0])
1313
EnumerableAggregate(group=[{0, 1}], agg#0=[$SUM0($2)], agg#1=[COUNT($2)])
14-
EnumerableCalc(expr#0..9=[{inputs}], expr#10=[7000], expr#11=[<($t2, $t10)], expr#12=['small':VARCHAR], expr#13=['large':VARCHAR], expr#14=[CASE($t11, $t12, $t13)], expr#15=[1], expr#16=['h'], expr#17=[SPAN($t0, $t15, $t16)], expr#18=[IS NOT NULL($t0)], value_range=[$t14], $f1=[$t17], value=[$t2], $condition=[$t18])
14+
EnumerableCalc(expr#0..9=[{inputs}], expr#10=[7000], expr#11=[<($t2, $t10)], expr#12=['small':VARCHAR], expr#13=['large':VARCHAR], expr#14=[CASE($t11, $t12, $t13)], expr#15=[1], expr#16=['h'], expr#17=[SPAN($t0, $t15, $t16)], expr#18=[IS NOT NULL($t0)], value_range=[$t14], span(@timestamp,1h)=[$t17], value=[$t2], $condition=[$t18])
1515
CalciteEnumerableIndexScan(table=[[OpenSearch, opensearch-sql_test_index_time_data]])

0 commit comments

Comments
 (0)