This is an automated email from the ASF dual-hosted git repository.

rongr pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git


The following commit(s) were added to refs/heads/master by this push:
     new 7217bb9d16 [multistage][bugfix] leaf limit refactor issue (#12001)
7217bb9d16 is described below

commit 7217bb9d16b60074c1e9a9df72984556a7c8dbd5
Author: Rong Rong <[email protected]>
AuthorDate: Tue Nov 14 10:46:27 2023 -0800

    [multistage][bugfix] leaf limit refactor issue (#12001)
    
    * [hotfix] leaf limit refactor - fix default value setting issue
    
    ---------
    
    Co-authored-by: Rong Rong <[email protected]>
    Co-authored-by: Xiaotian (Jackie) Jiang 
<[email protected]>
---
 .../runtime/plan/server/ServerPlanRequestUtils.java   | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git 
a/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/plan/server/ServerPlanRequestUtils.java
 
b/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/plan/server/ServerPlanRequestUtils.java
index b2ead5a041..832b2a4666 100644
--- 
a/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/plan/server/ServerPlanRequestUtils.java
+++ 
b/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/plan/server/ServerPlanRequestUtils.java
@@ -95,7 +95,7 @@ public class ServerPlanRequestUtils {
     ServerPlanRequestContext serverContext = new 
ServerPlanRequestContext(distributedStagePlan, leafQueryExecutor,
         executorService, executionContext.getPipelineBreakerResult());
     // 1. compile the PinotQuery
-    constructPinotQueryPlan(serverContext);
+    constructPinotQueryPlan(serverContext, 
executionContext.getOpChainMetadata());
     // 2. convert PinotQuery into InstanceRequest list (one for each physical 
table)
     List<InstanceRequest> instanceRequestList =
         ServerPlanRequestUtils.constructServerQueryRequests(executionContext, 
serverContext, distributedStagePlan,
@@ -115,10 +115,18 @@ public class ServerPlanRequestUtils {
    * It constructs the content for {@link 
ServerPlanRequestContext#getPinotQuery()} and set the boundary via:
    *   {@link ServerPlanRequestContext#setLeafStageBoundaryNode(PlanNode)}.
    */
-  private static void constructPinotQueryPlan(ServerPlanRequestContext 
serverContext) {
+  private static void constructPinotQueryPlan(ServerPlanRequestContext 
serverContext,
+      Map<String, String> requestMetadata) {
     DistributedStagePlan stagePlan = serverContext.getStagePlan();
     PinotQuery pinotQuery = serverContext.getPinotQuery();
     pinotQuery.setExplain(false);
+    // attach leaf node limit it not set
+    Integer leafNodeLimit = 
QueryOptionsUtils.getMultiStageLeafLimit(requestMetadata);
+    if (leafNodeLimit != null) {
+      pinotQuery.setLimit(leafNodeLimit);
+    } else {
+      pinotQuery.setLimit(DEFAULT_LEAF_NODE_LIMIT);
+    }
     // visit the plan and create PinotQuery and determine the leaf stage 
boundary PlanNode.
     ServerPlanRequestVisitor.walkStageNode(stagePlan.getStageRoot(), 
serverContext);
   }
@@ -177,13 +185,6 @@ public class ServerPlanRequestUtils {
         (executionContext.getRequestId() << 16) + ((long) stageId << 8) + 
(tableType == TableType.REALTIME ? 1 : 0);
     // 1. make a deep copy of the pinotQuery and modify the PinotQuery 
accordingly
     PinotQuery pinotQuery = new PinotQuery(serverContext.getPinotQuery());
-    //  - attach leaf node limit
-    Integer leafNodeLimit = 
QueryOptionsUtils.getMultiStageLeafLimit(executionContext.getOpChainMetadata());
-    if (leafNodeLimit != null) {
-      pinotQuery.setLimit(leafNodeLimit);
-    } else {
-      pinotQuery.setLimit(DEFAULT_LEAF_NODE_LIMIT);
-    }
     //   - attach table type
     DataSource dataSource = pinotQuery.getDataSource();
     String rawTableName = dataSource.getTableName();


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

Reply via email to