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();
          }
    ```


---

Reply via email to