jOOL
jOOL copied to clipboard
Bad interaction between window() and limit()
Expected behavior and actual behavior:
I'm building a Seq that contains limit() and window() terms and I'm seeing some surprising behavior:
- If the
limit()comes after the window() it appears that the iterator that theSeqis based on gets completely drained even though the stream terminates as expected after the number of items specified in thelimit()are processed. - If the
limit()comes before thewindow()the iterator is not drained. (The stream also terminates as expected.)
In my real scenario, the iterator that the Seq is based on is an iterator on top of a DB cursor and the limit() comes after the window(). I really need the behavior to not be that the code tries to drain this iterator--i.e., read a ton of rows from the DB.
Is this a bug or just the way things work?
Steps to reproduce the problem:
I've attached a simple program that exhibits the behavior.
Versions:
- jOOλ: 0.9.12
- Java: 1.8
See user group thread here: https://groups.google.com/forum/#!topic/jooq-user/gSi7CVhCEe4