stoty commented on a change in pull request #1114:
URL: https://github.com/apache/phoenix/pull/1114#discussion_r565101726



##########
File path: 
phoenix-core/src/main/java/org/apache/phoenix/iterate/RoundRobinResultIterator.java
##########
@@ -114,6 +114,7 @@ public Tuple next() throws SQLException {
                 index = (index + 1) % size;
             }
         }
+        close();

Review comment:
       > When RRIterator#peek() (next result) is null, we close the iterator. 
But if we don't get any next result after looping through all RRIterators, we 
should close() here, that's the plan right?
   
   Yes. When all iterators set numScannersCacheExhausted , and we're at the 
end, getIterators() will return and empty collection, as close() is skipped.
   
   > Although this looks good, curious if caller can implement the logic of 
calling RRResultIterator#close() if RRResultIterator#next() returns null. But 
if caller logic turns out to be more complicated, sure we should go this route 
I believe.
   
   This is is the pattern everywhere in the code. This is also less 
error-prone, and encapsulates the logic within the class, I see no reason to 
change this, either.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to