link3280 commented on issue #4806:
URL: https://github.com/apache/kyuubi/issues/4806#issuecomment-1667111918

   Reopen the issue because after a discussion with @pan3793 , we think the 
semantic problem is acceptable:
   
   - For Beeline users, beeline supports incremental mode which pulls rows in a 
micro-batch manner. If no row is produced, Beeline will block on 
`result.next()` until there are some rows or the timeout is reached (no timeout 
by default).
   - For JDBC users, calling `result.next()` now could be long-blocking, and 
users could either set a fetch timeout or interrupt the thread externally. 
   
   However, we still need to think about what to do if the timeout happens. 
There should be 3 approaches:
   
   1. throw a timeout exception with `result.next()`
   2. return `false` for `result.next()` which indicates there are no more rows 
(which is technically not true).
   3. return `true` for `result.next()` but the current row is set to null 
which indicates there are no rows yet (which is against normal use cases and 
may lead to surprises).
   
   Personally, I lean toward approach 1. 


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

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to