Github user paul-rogers commented on a diff in the pull request:

    https://github.com/apache/drill/pull/822#discussion_r118813651
  
    --- Diff: 
exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/aggregate/HashAggTemplate.java
 ---
    @@ -285,8 +648,18 @@ public AggOutcome doWork() {
           // In the future HashAggregate may also need to perform some actions 
conditionally
           // in the outer try block.
     
    +      assert ! handlingSpills || currentIndex < Integer.MAX_VALUE;
    +
           outside:
           while (true) {
    +
    +        // This would be called only once - after actual data arrives on 
incoming
    +        if ( schema == null && incoming.getRecordCount() > 0 ) {
    --- End diff --
    
    This kind of work is often done in response to the status codes from the 
upstream operator. Have to handle OK_NEW_SCHEMA, OK. The schema is defined on 
the first batch, with OK_NEW_SCHEMA, typically with a row count of 0. Must also 
handle (and probably fail) for OK_NEW_SCHEMA on subsequent batches.
    
    By putting the code here, rather in the code that calls the upstream 
`next()` it is necessary to reconcile here with that other code when doing a 
review.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to