alex-plekhanov commented on code in PR #12096:
URL: https://github.com/apache/ignite/pull/12096#discussion_r3202596019
##########
modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/WindowNode.java:
##########
@@ -76,14 +79,12 @@ public WindowNode(
requested = rowsCnt;
- doPush();
-
- if (waiting == 0) {
- waiting = IN_BUFFER_SIZE;
- source().request(IN_BUFFER_SIZE);
+ if (!inLoop) {
+ flush();
}
- else if (waiting < 0)
- downstream().end();
+
+ if (waiting == 0)
+ source().request(waiting = IN_BUFFER_SIZE);
Review Comment:
Maybe it's better to move this under `!inLoop` condition, to prevent from
some recursive calls like:
flush() pushes to downstream
downstream requests new rows
window requests new rows from input
input pushes rows to window and call flush()
flush() pushes to downstream
downstream requests new rows
...
All this in oute stack trace
--
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]