Re: Accessing parameters of a prepared query inside an FDW

From: Adam Fletcher <adamfblahblah(at)gmail(dot)com>
To: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
Cc: "pgsql-general(at)lists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: Accessing parameters of a prepared query inside an FDW
Date: 2024-02-17 17:06:45
Message-ID: CAMfJBeCgWRjWcXYf7cgSZA88RxxtTqxgY1r_wr0wjnzg3UYMyA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Wed, Feb 14, 2024 at 7:43 PM David G. Johnston <
david(dot)g(dot)johnston(at)gmail(dot)com> wrote:

> On Wednesday, February 14, 2024, Adam Fletcher <adamfblahblah(at)gmail(dot)com>
> wrote:
>>
>>
>> Is it possible to get the parameterized prepared query inside an FDW such
>> that it can be prepared/bind'd/execute'd on the receiving end of the FDW?
>>
>> For example, if I `PREPARE stmt(int) AS SELECT * from fdwrapped_tbl where
>> pk = $1;` then `execute stmt(1);` I want my FDW be aware that the query was
>> prepared.
>>
>
> That isn’t how the separation of responsibilities works in PostgreSQL.
> Execute is capable of producing a custom plan where instead of adding in
> parameters and then planning around those unknowns the newly created plan
> uses the supplied constants while planning.
>
> I do suspect that if a generic plan is chosen you will see the expected
> parse nodes and can thus build a generic access plan to your foreign server
> accordingly.
>
> You can control this for ease of testing via plan_cache_mode
>
>
> https://www.postgresql.org/docs/current/runtime-config-query.html#GUC-PLAN-CACHE-MODE
>

Thanks David, this solved my problem - here’s the reasons I asked:
https://github.com/EnterpriseDB/mysql_fdw/pull/293 - this adds parameter
forwarding to the MySQL FDW.

Thanks again!

<https://www.postgresql.org/docs/current/runtime-config-query.html#GUC-PLAN-CACHE-MODE>
>

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Kerr Livingstone 2024-02-17 17:49:15 Re: Version 6 binaries for RHEL 7
Previous Message Adrian Klaver 2024-02-17 16:55:57 Re: "reverse" (?) UPSERT -- how to ?