• Tom Lane's avatar
    Invalidate cached plans on FDW option changes. · c52d37c8
    Tom Lane authored
    This fixes problems where a plan must change but fails to do so,
    as seen in a bug report from Rajkumar Raghuwanshi.
    
    For ALTER FOREIGN TABLE OPTIONS, do this through the standard method of
    forcing a relcache flush on the table.  For ALTER FOREIGN DATA WRAPPER
    and ALTER SERVER, just flush the whole plan cache on any change in
    pg_foreign_data_wrapper or pg_foreign_server.  That matches the way
    we handle some other low-probability cases such as opclass changes, and
    it's unclear that the case arises often enough to be worth working harder.
    Besides, that gives a patch that is simple enough to back-patch with
    confidence.
    
    Back-patch to 9.3.  In principle we could apply the code change to 9.2 as
    well, but (a) we lack postgres_fdw to test it with, (b) it's doubtful that
    anyone is doing anything exciting enough with FDWs that far back to need
    this desperately, and (c) the patch doesn't apply cleanly.
    
    Patch originally by Amit Langote, reviewed by Etsuro Fujita and Ashutosh
    Bapat, who each contributed substantial changes as well.
    
    Discussion: https://postgr.es/m/CAKcux6m5cA6rRPTKkqVdJ-R=KKDfe35Q_ZuUqxDSV_4hwga=og@mail.gmail.com
    c52d37c8
postgres_fdw.out 349 KB