Re: postgres_fdw : altering foreign table not invalidating prepare statement execution plan. - Mailing list pgsql-hackers

From Etsuro Fujita
Subject Re: postgres_fdw : altering foreign table not invalidating prepare statement execution plan.
Date
Msg-id 63b31113-f0b9-96a8-494f-2c3d45c16586@lab.ntt.co.jp
Whole thread Raw
In response to Re: postgres_fdw : altering foreign table not invalidating prepare statement execution plan.  (Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>)
Responses Re: postgres_fdw : altering foreign table not invalidating prepare statement execution plan.  (Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>)
List pgsql-hackers
On 2016/09/29 20:03, Ashutosh Bapat wrote:
> On Tue, Apr 5, 2016 at 10:54 AM, Amit Langote
> <Langote_Amit_f8@lab.ntt.co.jp> wrote:
>> How about the attached that teaches
>> extract_query_dependencies() to add a foreign table and associated foreign
>> data wrapper and foreign server to invalItems.  Also, it adds plan cache
>> callbacks for respective caches.

> Although this is a better solution than the previous one, it
> invalidates the query tree along with the generic plan. Invalidating
> the query tree and the generic plan required parsing the query again
> and generating the plan. Instead I think, we should invalidate only
> the generic plan and not the query tree.

Agreed.

> The attached patch adds the
> dependencies from create_foreignscan_plan() which is called for any
> foreign access. I have also added testcases to test the functionality.
> Let me know your comments on the patch.

Hmm.  I'm not sure that that's a good idea.

I was thinking the changes to setrefs.c proposed by Amit to collect that 
dependencies would be probably OK, but I wasn't sure that it's a good 
idea that he used PlanCacheFuncCallback as the syscache inval callback 
function for the foreign object caches because it invalidates not only 
generic plans but query trees, as you mentioned downthread.  So, I was 
thinking to modify his patch so that we add a new syscache inval 
callback function for the caches that is much like PlanCacheFuncCallback 
but only invalidates generic plans.

Best regards,
Etsuro Fujita





pgsql-hackers by date:

Previous
From: Etsuro Fujita
Date:
Subject: Re: postgres_fdw : altering foreign table not invalidating prepare statement execution plan.
Next
From: Kyotaro HORIGUCHI
Date:
Subject: Re: WAL logging problem in 9.4.3?