Re: postgres_fdw : altering foreign table not invalidating prepare statement execution plan.

Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>

From: Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>
To: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>, Tom Lane <tgl@sss.pgh.pa.us>
Cc: Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>, Amit Langote <amitlangote09@gmail.com>, Rajkumar Raghuwanshi <rajkumar.raghuwanshi@enterprisedb.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2016-11-30T09:05:44Z
Lists: pgsql-hackers
On 2016/11/30 17:53, Amit Langote wrote:
> On 2016/11/30 17:25, Etsuro Fujita wrote:
>> Done.  I modified the patch so that any inval in pg_foreign_server also
>> blows the whole plan cache.

> I noticed the following addition:
>
> + 	CacheRegisterSyscacheCallback(FOREIGNDATAWRAPPEROID,
> PlanCacheSysCallback, (Datum) 0);
>
> Is that intentional?  I thought you meant only to add for pg_foreign_server.

Yes, that's intentional; we would need that as well, because cached 
plans might reference FDW-level options, not only server/table-level 
options.  I couldn't come up with regression tests for FDW-level options 
in postgres_fdw, though.

Best regards,
Etsuro Fujita




Commits

  1. Invalidate cached plans on FDW option changes.