@@ -2044,7 +2044,7 @@ public void testComplexDedup() throws IOException {
20442044 + " dedup 2 gender, state" ));
20452045 }
20462046
2047- @ Ignore ( "https://github.com/opensearch-project/sql/issues/4789" )
2047+ @ Test
20482048 public void testDedupExpr () throws IOException {
20492049 enabledOnlyWhenPushdownIsEnabled ();
20502050 String expected = loadExpectedPlan ("explain_dedup_expr1.yaml" );
@@ -2054,30 +2054,36 @@ public void testDedupExpr() throws IOException {
20542054 "source=opensearch-sql_test_index_account | eval new_gender = lower(gender) | dedup 1"
20552055 + " new_gender" ));
20562056 expected = loadExpectedPlan ("explain_dedup_expr2.yaml" );
2057+ String alternative = loadExpectedPlan ("explain_dedup_expr2_alternative.yaml" );
20572058 assertYamlEqualsIgnoreId (
20582059 expected ,
2060+ alternative ,
20592061 explainQueryYaml (
20602062 "source=opensearch-sql_test_index_account | fields account_number, gender, age, state |"
20612063 + " eval new_gender = lower(gender), new_state = lower(state) | dedup 1 new_gender,"
20622064 + " new_state" ));
20632065 expected = loadExpectedPlan ("explain_dedup_expr3.yaml" );
2066+ alternative = loadExpectedPlan ("explain_dedup_expr3_alternative.yaml" );
20642067 assertYamlEqualsIgnoreId (
20652068 expected ,
2069+ alternative ,
20662070 explainQueryYaml (
20672071 "source=opensearch-sql_test_index_account | eval new_gender = lower(gender) | eval"
20682072 + " new_state = lower(state) | dedup 2 new_gender, new_state" ));
20692073 expected = loadExpectedPlan ("explain_dedup_expr4.yaml" );
2074+ alternative = loadExpectedPlan ("explain_dedup_expr4_alternative.yaml" );
20702075 assertYamlEqualsIgnoreId (
20712076 expected ,
2077+ alternative ,
20722078 explainQueryYaml (
20732079 "source=opensearch-sql_test_index_account | fields account_number, gender, age, state |"
20742080 + " eval new_gender = lower(gender) | eval new_state = lower(state) | sort gender,"
20752081 + " -state | dedup 2 new_gender, new_state" ));
20762082 }
20772083
2078- @ Ignore ( "https://github.com/opensearch-project/sql/issues/4789" )
2084+ @ Test
20792085 public void testDedupRename () throws IOException {
2080- // rename changes nothing, reuse the same yaml files of testDedupExpr()
2086+ // rename changes nothing, reuse the same yaml files
20812087 enabledOnlyWhenPushdownIsEnabled ();
20822088 String expected = loadExpectedPlan ("explain_dedup_expr1.yaml" );
20832089 assertYamlEqualsIgnoreId (
@@ -2086,41 +2092,96 @@ public void testDedupRename() throws IOException {
20862092 "source=opensearch-sql_test_index_account | eval tmp_gender = lower(gender) | rename"
20872093 + " tmp_gender as new_gender | dedup 1 new_gender" ));
20882094 expected = loadExpectedPlan ("explain_dedup_expr2.yaml" );
2095+ String alternative = loadExpectedPlan ("explain_dedup_expr2_alternative.yaml" );
20892096 assertYamlEqualsIgnoreId (
20902097 expected ,
2098+ alternative ,
20912099 explainQueryYaml (
20922100 "source=opensearch-sql_test_index_account | fields account_number, gender, age, state |"
20932101 + " eval tmp_gender = lower(gender), tmp_state = lower(state) | rename tmp_gender"
20942102 + " as new_gender | rename tmp_state as new_state | dedup 1 new_gender,"
20952103 + " new_state" ));
20962104 expected = loadExpectedPlan ("explain_dedup_expr3.yaml" );
2105+ alternative = loadExpectedPlan ("explain_dedup_expr3_alternative.yaml" );
20972106 assertYamlEqualsIgnoreId (
20982107 expected ,
2108+ alternative ,
20992109 explainQueryYaml (
21002110 "source=opensearch-sql_test_index_account | eval tmp_gender = lower(gender) | eval"
21012111 + " tmp_state = lower(state) | rename tmp_gender as new_gender | rename tmp_state"
21022112 + " as new_state | dedup 2 new_gender, new_state" ));
21032113 expected = loadExpectedPlan ("explain_dedup_expr4.yaml" );
2114+ alternative = loadExpectedPlan ("explain_dedup_expr4_alternative.yaml" );
21042115 assertYamlEqualsIgnoreId (
21052116 expected ,
2117+ alternative ,
21062118 explainQueryYaml (
21072119 "source=opensearch-sql_test_index_account | fields account_number, gender, age, state |"
21082120 + " eval tmp_gender = lower(gender) | eval tmp_state = lower(state) | rename"
21092121 + " tmp_gender as new_gender | rename tmp_state as new_state | sort gender,"
21102122 + " -state | dedup 2 new_gender, new_state" ));
21112123 }
21122124
2113- @ Ignore ( "SortExprIndexScanRule not work?" )
2114- public void testDedupRename2 () throws IOException {
2125+ @ Test
2126+ public void testRenameDedupThenSortExpr () throws IOException {
21152127 enabledOnlyWhenPushdownIsEnabled ();
2116- String expected = loadExpectedPlan ("explain_dedup_expr4.yaml" );
2128+ String expected = loadExpectedPlan ("explain_dedup_expr_complex1.yaml" );
2129+ String alternative = loadExpectedPlan ("explain_dedup_expr_complex1_alternative.yaml" );
21172130 assertYamlEqualsIgnoreId (
21182131 expected ,
2132+ alternative ,
21192133 explainQueryYaml (
21202134 "source=opensearch-sql_test_index_account | fields account_number, gender, age, state |"
21212135 + " eval tmp_gender = lower(gender) | eval tmp_state = lower(state) | rename"
21222136 + " tmp_gender as new_gender | rename tmp_state as new_state | sort new_gender,"
21232137 + " -new_state | dedup 2 new_gender, new_state" ));
2138+ expected = loadExpectedPlan ("explain_dedup_expr_complex2.yaml" );
2139+ alternative = loadExpectedPlan ("explain_dedup_expr_complex2_alternative.yaml" );
2140+ assertYamlEqualsIgnoreId (
2141+ expected ,
2142+ alternative ,
2143+ explainQueryYaml (
2144+ "source=opensearch-sql_test_index_account | fields account_number, gender, age, state |"
2145+ + " eval tmp_gender = lower(gender) | eval tmp_state = lower(state) | rename"
2146+ + " tmp_gender as new_gender | rename tmp_state as new_state | dedup 2 new_gender,"
2147+ + " new_state | sort new_gender, -new_state" ));
2148+ }
2149+
2150+ @ Test
2151+ public void testDedupWithExpr () throws IOException {
2152+ enabledOnlyWhenPushdownIsEnabled ();
2153+ String expected = loadExpectedPlan ("explain_dedup_with_expr1.yaml" );
2154+ assertYamlEqualsIgnoreId (
2155+ expected ,
2156+ explainQueryYaml (
2157+ "source=opensearch-sql_test_index_account | eval new_gender = lower(gender) | dedup 1"
2158+ + " age" ));
2159+ expected = loadExpectedPlan ("explain_dedup_with_expr2.yaml" );
2160+ String alternative = loadExpectedPlan ("explain_dedup_with_expr2_alternative.yaml" );
2161+ assertYamlEqualsIgnoreId (
2162+ expected ,
2163+ alternative ,
2164+ explainQueryYaml (
2165+ "source=opensearch-sql_test_index_account | fields account_number, gender, age, state |"
2166+ + " eval new_gender = lower(gender), new_state = lower(state) | dedup 1 age,"
2167+ + " new_state" ));
2168+ expected = loadExpectedPlan ("explain_dedup_with_expr3.yaml" );
2169+ alternative = loadExpectedPlan ("explain_dedup_with_expr3_alternative.yaml" );
2170+ assertYamlEqualsIgnoreId (
2171+ expected ,
2172+ alternative ,
2173+ explainQueryYaml (
2174+ "source=opensearch-sql_test_index_account | eval new_gender = lower(gender) | eval"
2175+ + " new_state = lower(state) | dedup 2 age, account_number" ));
2176+ expected = loadExpectedPlan ("explain_dedup_with_expr4.yaml" );
2177+ alternative = loadExpectedPlan ("explain_dedup_with_expr4_alternative.yaml" );
2178+ assertYamlEqualsIgnoreId (
2179+ expected ,
2180+ alternative ,
2181+ explainQueryYaml (
2182+ "source=opensearch-sql_test_index_account | fields account_number, gender, age, state |"
2183+ + " eval new_gender = lower(gender) | eval new_state = lower(state) | sort gender,"
2184+ + " -state | dedup 2 gender, state" ));
21242185 }
21252186
21262187 @ Test
0 commit comments