Re: Function scan FDW pushdown - Mailing list pgsql-hackers

From Alexander Pyhalov
Subject Re: Function scan FDW pushdown
Date
Msg-id e3af56f9b2f1bd9fdf12aff6ca25b18d@postgrespro.ru
Whole thread Raw
In response to Function scan FDW pushdown  (Alexander Pyhalov <a.pyhalov@postgrespro.ru>)
List pgsql-hackers
Álvaro Herrera писал(а) 2025-08-05 22:55:
> Hello,
> 
> On 2024-Nov-05, g.kashkin@postgrespro.ru wrote:
> 
>> This is a long-overdue follow-up to the original patch.
>> Note that this patch contains only the changes required for
>> function scan pushdown, examples and code related to asymmetric
>> join are dropped.
> 
> I've marked this as returned with feedback, as several months have
> passed without a further version; the current one has a number of
> gotchas, including some problematic coding detected by a compiler
> warning, as well as unfinished design:
> 
>> The issue with setting newrte->functions to NIL still persists.
>> [...]
>> I am aware that the rte->functions will now be copied even on
>> instances that don't utilize a FDW, but I don't see a way to solve it.
>> Any suggestions are welcome.
> 
> Feel free to reopen this CF entry[1] once you're able to figure this 
> out.
> 
> [1] https://commitfest.postgresql.org/patch/5470/

Hi.
I've updated patch with latest fixes, including more checks for corner 
cases.
Now function pushdown is forbidden for functions, returning sets of 
complex types
or which arguments contain parameters. Together with Gleb Kashkin we've 
also moved
information about functions to foreign scan private data. The tricky 
part here was
to get correct rti mappings after setrefs, but it seems we've managed to 
do it.
Also I've removed some changes, which are required only in presence of 
asymmetric
join.

Of course, I'm targeting PostgreSQL 20.
-- 
Best regards,
Alexander Pyhalov,
Postgres Professional
Attachment

pgsql-hackers by date:

Previous
From: Peter Eisentraut
Date:
Subject: Re: [PATCH] Add `headerscheck` run_target to meson
Next
From: Heikki Linnakangas
Date:
Subject: Re: Fix uninitialized xl_running_xacts padding