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