adriangb commented on PR #15566: URL: https://github.com/apache/datafusion/pull/15566#issuecomment-2812623615
> Let's say you have a plan like A(root)<- B <- C <- D <- E <- F <- G (scan). > Assume E is an operator making some filtering, and F is another operator which does not allow filter push down. So, E cannot be pushed down over F. Knowing all these, can we say that all other operators(A,B,C or D --possibly having some filters) cannot also be pushed down over F? Is it a safe assumption to make? If `F` does not allow filter pushdown than anything upstream of it will not be able to push down filters into the scan (G). However there may still be filter pushdown e.g. from `B` to `E`: `TopK` <- `FilterExec` <- `F` <- `Scan`. In this case `TopK` may push down into `FilterExec` and `FilterExec` will try to push down into `Scan` but be blocked by `F`, so `FilterExec` stays where it is with it's current filters but also absorbs any filters from `TopK`. -- 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: github-unsubscr...@datafusion.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org For additional commands, e-mail: github-h...@datafusion.apache.org