Hi, Thanks for the detailed explanation and the example queries. That helped me better understand the costing behavior behind the pushdown decisions.
I tested the new v4 patch on current master using a postgres_fdw loopback setup with local table t1 and foreign table ft1. Here’s what I observed: - Before ANALYZE, the planner chose a local Hash Join with separate Foreign Scan and Function Scan nodes. - After running ANALYZE on the empty table, it still preferred local execution, which makes sense based on the costing explanation. - I then inserted 1000 rows into t1, ran ANALYZE again, and repeated the test. Even after that, I still got a local Hash Join plan like: Hash Join - Foreign Scan on ft1 - Function Scan on generate_series I wasn’t able to observe the pushed-down Foreign Scan plan shown in the example from the thread. The patch itself applied and built successfully on my side, so this may just be due to planner cost differences or environment-specific behavior on current master. Regards, Solaimurugan V
