Re: postgres_fdw : altering foreign table not invalidating prepare statement execution plan.
Amit Langote <langote_amit_f8@lab.ntt.co.jp>
From: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>
To: Tom Lane <tgl@sss.pgh.pa.us>, Amit Langote <amitlangote09@gmail.com>
Cc: Rajkumar Raghuwanshi <rajkumar.raghuwanshi@enterprisedb.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2016-04-14T07:30:30Z
Lists: pgsql-hackers
On 2016/04/05 14:24, Amit Langote wrote: > On 2016/04/05 0:23, Tom Lane wrote: >> Amit Langote <amitlangote09@gmail.com> writes: >>> Hm, some kind of PlanInvalItem-based solution could work maybe? >> >> Hm, so we'd expect that whenever an FDW consulted the options while >> making a plan, it'd have to record a plan dependency on them? That >> would be a clean fix maybe, but I'm worried that third-party FDWs >> would fail to get the word about needing to do this. > > I would imagine that that level of granularity may be a little too much; I > mean tracking dependencies at the level of individual FDW/foreign > table/foreign server options. I think it should really be possible to do > the entire thing in core instead of requiring this to be made a concern of > FDW authors. 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. > > One thing that I observed that may not be all that surprising is that we > may need a similar mechanism for postgres_fdw's connection cache, which > doesn't drop connections using older server connection info after I alter > them. I was trying to test my patch by altering dbaname option of a > foreign server but that was silly, ;). Although, I did confirm that the > patch works by altering use_remote_estimates server option. I could not > really test for FDW options though. > > Thoughts? I added this to next CF, just in case: https://commitfest.postgresql.org/10/609/ Thanks, Amit
Commits
-
Invalidate cached plans on FDW option changes.
- e4380e4cf68a 9.4.11 landed
- c52d37c8b367 10.0 landed
- aaf12e577ee9 9.5.6 landed
- a8191800a6e6 9.3.16 landed
- 4103a2f200d6 9.6.2 landed