clintropolis commented on code in PR #18539:
URL: https://github.com/apache/druid/pull/18539#discussion_r2361509821


##########
processing/src/test/java/org/apache/druid/segment/CursorFactoryProjectionTest.java:
##########
@@ -1898,75 +1909,40 @@ private void testGroupBy(
       List<Object[]> expectedResults
   )
   {
-    final Sequence<ResultRow> resultRows = groupingEngine.process(
+    resourcesReservationPool.reserve(
+        new QueryResourceId(RESOURCE_ID),
         query,
-        cursorFactory,
-        timeBoundaryInspector,
-        nonBlockingPool,
-        queryMetrics
-    );
-
-    queryMetrics.assertProjection();
-
-    final List<ResultRow> results = resultRows.toList();
-    assertGroupByResults(expectedResults, results);
-
-    final Sequence<ResultRow> resultRowsNoProjection = groupingEngine.process(
-        query.withOverriddenContext(Map.of(QueryContexts.NO_PROJECTIONS, 
true)),
-        cursorFactory,
-        timeBoundaryInspector,
-        nonBlockingPool,
-        null
+        true,
+        new GroupByStatsProvider.PerQueryStats()
     );
-
-    final List<ResultRow> resultsNoProjection = 
resultRowsNoProjection.toList();
-    assertGroupByResults(expectedResults, resultsNoProjection);
-  }
-
-  private void testGroupBy(GroupByQuery query, ExpectedProjectionGroupBy 
queryMetrics, Set<Object[]> expectedResults)
-  {
-    testGroupBy(projectionsCursorFactory, projectionsTimeBoundaryInspector, 
query, queryMetrics, expectedResults);
-  }
-
-  private void testGroupBy(
-      CursorFactory cursorFactory,
-      TimeBoundaryInspector timeBoundaryInspector,
-      GroupByQuery query,
-      ExpectedProjectionGroupBy queryMetrics,
-      Set<Object[]> expectedResults
-  )
-  {
-    final Sequence<ResultRow> resultRows = groupingEngine.process(
+    QueryRunner<ResultRow> runner = (unused1, unused2) -> 
groupingEngine.process(
         query,
         cursorFactory,
         timeBoundaryInspector,
         nonBlockingPool,
         queryMetrics
     );
 
+    final List<ResultRow> results = groupingEngine
+        .mergeRunners(DirectQueryProcessingPool.INSTANCE, List.of(runner))
+        .run(QueryPlus.wrap(query))
+        .toList();
     queryMetrics.assertProjection();
+    assertGroupByResults(expectedResults, results);
 
-    final Object[] results = 
resultRows.toList().stream().map(ResultRow::getArray).map(Arrays::toString).toArray();
-    Arrays.sort(results);
-
-    final Object[] expectedResultsArray = 
expectedResults.stream().map(Arrays::toString).toArray();
-    Arrays.sort(expectedResultsArray);
-    // print a full diff of all differing elements.
-    Assertions.assertEquals(Arrays.toString(expectedResultsArray), 
Arrays.toString(results));
-
-    final Sequence<ResultRow> resultRowsNoProjection = groupingEngine.process(
-        query.withOverriddenContext(Map.of(QueryContexts.NO_PROJECTIONS, 
true)),
-        cursorFactory,
-        timeBoundaryInspector,
-        nonBlockingPool,
-        null
-    );
-
-    final Object[] resultsNoProjection = 
resultRowsNoProjection.toList().stream().map(ResultRow::getArray).map(Arrays::toString).toArray();
-    Arrays.sort(resultsNoProjection);
-    // print a full diff of all differing elements.
-    Assertions.assertEquals(Arrays.toString(expectedResultsArray), 
Arrays.toString(resultsNoProjection));
-
+    runner = (unused1, unused2) ->
+        groupingEngine.process(
+            query.withOverriddenContext(Map.of(QueryContexts.NO_PROJECTIONS, 
true)),
+            cursorFactory,
+            timeBoundaryInspector,
+            nonBlockingPool,
+            null
+        );
+    final List<ResultRow> resultsNoProjection = groupingEngine
+        .mergeRunners(DirectQueryProcessingPool.INSTANCE, List.of(runner))

Review Comment:
   why do we need a sorted result? (other than making it a bit easier to write 
tests since otherwise sometimes it is inconsistent between runs)



-- 
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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to