Re: postgres_fdw prefers fast plans
Alexander Pyhalov <a.pyhalov@postgrespro.ru>
From: Alexander Pyhalov <a.pyhalov@postgrespro.ru>
To: Laurenz Albe <laurenz.albe@cybertec.at>
Cc: PostgreSQL mailing lists <pgsql-hackers@postgresql.org>
Date: 2025-12-11T06:38:13Z
Lists: pgsql-hackers
Attachments
Laurenz Albe писал(а) 2025-12-10 16:12: > On Wed, 2025-12-10 at 15:44 +0300, Alexander Pyhalov wrote: >> There's a long-standing issue with postgres_fdw - as it uses cursors, >> it >> prefers plans, optimized for fetching first rows. In bad scenarios >> this >> leads to suboptimal choice of join methods (e.g. choosing nest loop >> over >> hash join) on remote side. I've crafted WIP patch, which tries to fix >> this issue. It adds FETCH ALL cursors and uses them in postgres_fdw. >> What do you think? Should we go in this direction? > > Why not simply set cursor_tuple_fraction to 1.0 in postgres_fdw > sessions? > > Yours, > Laurenz Albe Hi. Haven't thought about this. Thanks for the idea. The only drawback I see is that this will affect all cursors, which can be used, for example, by shippable functions. But looks much simpler. -- Best regards, Alexander Pyhalov, Postgres Professional