From f671f13607ef87c413cecefc26f2eb5b6a81faef Mon Sep 17 00:00:00 2001 From: Shlok Kyal Date: Fri, 27 Sep 2024 16:04:54 +0530 Subject: [PATCH v10 2/2] Selective Invalidation of Cache When we alter a publication, add/drop namespace to/from publication all the cache for all the tables are invalidated. With this patch for the above operationns we will invalidate the cache of only the desired tables. --- src/backend/replication/pgoutput/pgoutput.c | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/src/backend/replication/pgoutput/pgoutput.c b/src/backend/replication/pgoutput/pgoutput.c index 00e7024563..b8429be8cf 100644 --- a/src/backend/replication/pgoutput/pgoutput.c +++ b/src/backend/replication/pgoutput/pgoutput.c @@ -1739,12 +1739,6 @@ static void publication_invalidation_cb(Datum arg, int cacheid, uint32 hashvalue) { publications_valid = false; - - /* - * Also invalidate per-relation cache so that next time the filtering info - * is checked it will be updated with the new publication settings. - */ - rel_sync_cache_publication_cb(arg, cacheid, hashvalue); } /* @@ -1920,18 +1914,6 @@ init_rel_sync_cache(MemoryContext cachectx) rel_sync_cache_publication_cb, (Datum) 0); - /* - * Flush all cache entries after any publication changes. (We need no - * callback entry for pg_publication, because publication_invalidation_cb - * will take care of it.) - */ - CacheRegisterSyscacheCallback(PUBLICATIONRELMAP, - rel_sync_cache_publication_cb, - (Datum) 0); - CacheRegisterSyscacheCallback(PUBLICATIONNAMESPACEMAP, - rel_sync_cache_publication_cb, - (Datum) 0); - relation_callbacks_registered = true; } -- 2.34.1