pgsql: Flush relcache entries when their FKs are meddled with

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Flush relcache entries when their FKs are meddled with
Date: 2019-01-21 22:39:49
Message-ID: E1gliEP-0003f4-NE@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Flush relcache entries when their FKs are meddled with

Back in commit 100340e2dcd0, we made relcache entries keep lists of the
foreign keys applying to the relation -- but we forgot to update
CacheInvalidateHeapTuple to flush those entries when new FKs got created
or existing ones updated/deleted. No bugs appear to have been reported
that would be explained by this ommission, but I noticed the problem
while working on an unrelated bugfix which clearly showed it. Fix by
adding relcache flush on relevant foreign key changes.

Backpatch to 9.6, like the aforementioned commit.

Discussion: https://postgr.es/m/201901211927.7mmhschxlejh@alvherre.pgsql
Reviewed-by: Tom Lane

Branch
------
REL_10_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/3037b28b89b44fccfcfddb2254655f45b3005f82

Modified Files
--------------
src/backend/utils/cache/inval.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)

Browse pgsql-committers by date

  From Date Subject
Next Message Alvaro Herrera 2019-01-21 23:10:44 pgsql: Create action triggers when partitions are detached
Previous Message Tom Lane 2019-01-21 21:17:15 pgsql: Second try at fixing ecpglib thread-safety problem.