zstan commented on code in PR #1524:
URL: https://github.com/apache/ignite-3/pull/1524#discussion_r1073472554


##########
modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItSortAggregateTest.java:
##########
@@ -67,8 +70,118 @@ public void mapReduceAggregate() {
 
     @Test
     public void correctCollationsOnMapReduceSortAgg() {
-        var cursors = sql("SELECT PK FROM TEST_ONE_COL_IDX WHERE col0 IN 
(SELECT col0 FROM TEST_ONE_COL_IDX)");
+        String disabledRules = " /*+ 
DISABLE_RULE('MapReduceHashAggregateConverterRule', 
'ColocatedSortAggregateConverterRule') */ ";
+
+        var cursors = sql(
+                appendDisabledRules("SELECT PK FROM TEST_ONE_COL_IDX WHERE 
col0 IN (SELECT col0 FROM TEST_ONE_COL_IDX)", disabledRules));
 
         assertEquals(ROWS, cursors.size());
     }
+
+    @Test
+    @WithSystemProperty(key = "IMPLICIT_PK_ENABLED", value = "true")
+    //TODO: rewrite with QueryChecker after
+    // https://issues.apache.org/jira/browse/IGNITE-18501 (QueryChecker still 
use deprecated QueryProcessor#queryAsync method)
+    public void testDifferentCollocatedSortAgg() {
+        try {
+            sql("CREATE TABLE testMe (a INTEGER, b INTEGER, s VARCHAR);");
+            sql("INSERT INTO testMe VALUES (11, 1, 'hello'), (12, 2, 'world'), 
(11, 3, NULL)");
+            sql("INSERT INTO testMe VALUES (11, 3, 'hello'), (12, 2, 'world'), 
(10, 5, 'ahello'), (13, 6, 'world')");
+
+            String disabledRules = " /*+ 
DISABLE_RULE('MapReduceHashAggregateConverterRule', 
'MapReduceSortAggregateConverterRule', "
+                    + "'ColocatedHashAggregateConverterRule') */ ";
+
+            List<List<Object>> res = sql(appendDisabledRules("SELECT 
DISTINCT(a) as a FROM testMe ORDER BY a", disabledRules));
+            List<Object> res0 = transformResults(res);
+            assertEquals(4, res.size());
+            assertEquals(List.of(10, 11, 12, 13), res0);
+
+            res = sql(appendDisabledRules("SELECT COUNT(*) FROM testMe", 
disabledRules));
+            res0 = transformResults(res);
+            assertEquals(1, res.size());
+            assertEquals(List.of(7L), res0);
+
+            res = sql(appendDisabledRules("SELECT COUNT(a), COUNT(DISTINCT(b)) 
FROM testMe", disabledRules));
+
+            assertEquals(1, res.size());
+            assertEquals(List.of(7L, 5L), res.get(0));
+
+            res = sql(appendDisabledRules("SELECT COUNT(a) as a, s FROM testMe 
GROUP BY s ORDER BY a, s", disabledRules));
+            res0 = transformResults(res);
+            assertEquals(4, res.size());
+            assertEquals(List.of(List.of(1L, "ahello"), Arrays.asList(1L, 
null), List.of(2L, "hello"), List.of(3L, "world")), res0);
+
+            res = sql(appendDisabledRules("SELECT COUNT(a) as a, AVG(a) as b, 
MIN(a), MIN(b), s FROM testMe GROUP BY s ORDER BY a, b",
+                    disabledRules));
+            res0 = transformResults(res);
+            assertEquals(4, res.size());
+            assertEquals(List.of(List.of(1L, 10, 10, 5, "ahello"), 
Arrays.asList(1L, 11, 11, 3, null), List.of(2L, 11, 11, 1, "hello"),
+                    List.of(3L, 12, 12, 2, "world")), res0);
+
+            res = sql(appendDisabledRules("SELECT COUNT(a) as a, AVG(a) as bb, 
MIN(a), MIN(b), s FROM testMe GROUP BY s, b ORDER BY a, s",
+                    disabledRules));
+            res0 = transformResults(res);
+            assertEquals(6, res.size());
+            assertEquals(List.of(List.of(1L, 10, 10, 5, "ahello"), List.of(1L, 
11, 11, 1, "hello"), List.of(1L, 11, 11, 3, "hello"),
+                    List.of(1L, 13, 13, 6, "world"), Arrays.asList(1L, 11, 11, 
3, null), List.of(2L, 12, 12, 2, "world")), res0);
+
+            res = sql(appendDisabledRules("SELECT COUNT(a) FROM testMe", 
disabledRules));
+            res0 = transformResults(res);
+            assertEquals(1, res.size());
+            assertEquals(List.of(7L), res0);
+
+            res = sql(appendDisabledRules("SELECT COUNT(DISTINCT(a)) FROM 
testMe", disabledRules));
+            res0 = transformResults(res);
+            assertEquals(1, res.size());
+            assertEquals(List.of(4L), res0);
+
+            res = sql(appendDisabledRules("SELECT COUNT(a), COUNT(s), COUNT(*) 
FROM testMe", disabledRules));
+            res0 = transformResults(res);
+            assertEquals(1, res.size());
+            assertEquals(List.of(7L, 6L, 7L), res0.get(0));
+
+            res = sql(appendDisabledRules("SELECT AVG(a) FROM testMe", 
disabledRules));
+            res0 = transformResults(res);
+            assertEquals(1, res.size());
+            assertEquals(List.of(11), res0);
+
+            res = sql(appendDisabledRules("SELECT MIN(a) FROM testMe", 
disabledRules));
+            res0 = transformResults(res);
+            assertEquals(1, res.size());
+            assertEquals(List.of(10), res0);
+
+            res = sql(appendDisabledRules("SELECT COUNT(a), COUNT(DISTINCT(a)) 
FROM testMe", disabledRules));
+            res0 = transformResults(res);
+            assertEquals(1, res.size());
+            assertEquals(List.of(7L, 4L), res0.get(0));
+        } finally {
+            sql("DROP TABLE testMe");
+        }
+    }
+
+    private String appendDisabledRules(String sql, String rules) {

Review Comment:
   I understand but seems that check output results with **sql()** is not 
comfortable as with QueryChecker (which need to be rafactored a bit, issue is 
linked above) let`s do it in checker ? 



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to