Github user vrozov commented on a diff in the pull request:
https://github.com/apache/drill/pull/1237#discussion_r184558425
--- Diff:
exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/unorderedreceiver/UnorderedReceiverBatch.java
---
@@ -149,25 +149,32 @@ private RawFragmentBatch getNextBatch() throws
IOException {
}
}
+ private RawFragmentBatch getNextNotEmptyBatch() throws IOException {
+ RawFragmentBatch batch;
+ try {
+ stats.startWait();
+ batch = getNextBatch();
+
+ // skip over empty batches. we do this since these are basically
control messages.
+ while (batch != null && batch.getHeader().getDef().getRecordCount()
== 0
--- End diff --
Consider reverting the condition, something like
```
while (true) {
RawFragmentBatch batch = getNextBatch();
if (batch == null) {
break;
}
RecordBatchDef recordBatchDef = batch.getHeader().getDef();
if (recordBatchDef.getRecordCount() > 0 || (first &&
recordBatchDef.getFieldCount() > 0)) {
return batch;
}
batch.release();
}
```
---