Github user arina-ielchiieva commented on a diff in the pull request:

    https://github.com/apache/drill/pull/1051#discussion_r153458672
  
    --- Diff: 
exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/Foreman.java ---
    @@ -426,48 +413,25 @@ private void runPhysicalPlan(final PhysicalPlan plan) 
throws ExecutionSetupExcep
         queryManager.setTotalCost(plan.totalCost());
         work.applyPlan(drillbitContext.getPlanReader());
         logWorkUnit(work);
    -    admit(work);
    -    queryManager.setQueueName(queryRM.queueName());
    -
    -    final List<PlanFragment> planFragments = work.getFragments();
    -    final PlanFragment rootPlanFragment = work.getRootFragment();
    -    assert queryId == rootPlanFragment.getHandle().getQueryId();
     
    -    drillbitContext.getWorkBus().addFragmentStatusListener(queryId, 
queryManager.getFragmentStatusListener());
    -    
drillbitContext.getClusterCoordinator().addDrillbitStatusListener(queryManager.getDrillbitStatusListener());
    +    fragmentsRunner.setPlanFragments(work.getFragments());
    +    fragmentsRunner.setRootPlanFragment(work.getRootFragment());
    +    fragmentsRunner.setRootOperator(work.getRootOperator());
    --- End diff --
    
    1. Agree. I will create single function to accept all of these.
    2. `work` object is applicable only when we run query / prepared statement 
/ plans. For the cases when run fragment, work object is not used at all [1]. 
Featured introduced in DRILL-4132 [2].
    
    [1] 
https://github.com/arina-ielchiieva/drill/blob/master/exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/Foreman.java#L473
    [2] https://issues.apache.org/jira/browse/DRILL-4132


---

Reply via email to