Akshat-Jain commented on code in PR #16804:
URL: https://github.com/apache/druid/pull/16804#discussion_r1697098753


##########
extensions-core/multi-stage-query/src/main/java/org/apache/druid/msq/querykit/WindowOperatorQueryKit.java:
##########
@@ -112,7 +111,24 @@ public QueryDefinition makeQueryDefinition(
         false
     );
 
-    dataSourcePlan.getSubQueryDefBuilder().ifPresent(queryDefBuilder::addAll);
+    final QueryDefinitionBuilder builder = QueryDefinition.builder(queryId);
+    dataSourcePlan.getSubQueryDefBuilder().ifPresent(builder::addAll);
+
+    QueryDefinitionBuilder queryDefBuilder = QueryDefinition.builder(queryId);
+    if (isEmptyOverPresent) {
+      // If window has an empty over, we want a single worker to process 
entire data for window function evaluation.
+      // To achieve that, we are overriding the shuffle spec of the last stage 
to MixShuffleSpec.
+      int previousStageNumber = 
dataSourcePlan.getSubQueryDefBuilder().get().build().getFinalStageDefinition().getStageNumber();
+      for (final StageDefinition stageDef : 
dataSourcePlan.getSubQueryDefBuilder().get().build().getStageDefinitions()) {
+        if (stageDef.getStageNumber() == previousStageNumber) {
+          
queryDefBuilder.add(StageDefinition.builder(stageDef).shuffleSpec(MixShuffleSpec.instance()));
+        } else {
+          queryDefBuilder.add(StageDefinition.builder(stageDef));
+        }
+      }
+    } else {
+      queryDefBuilder = builder;
+    }

Review Comment:
   Makes sense, have made the change.



-- 
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: commits-unsubscr...@druid.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@druid.apache.org
For additional commands, e-mail: commits-h...@druid.apache.org

Reply via email to