summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmit Kapila <akapila@postgresql.org>2022-06-23 08:47:15 +0530
committerAmit Kapila <akapila@postgresql.org>2022-06-23 08:47:15 +0530
commit9e0d9a24ef88fa6bbca8d28cc7af9e3cde7b4886 (patch)
tree5967f940c18c040f0975f6c764021275535b6cd0
parent5ad46aec8749687ac41398b2d2017ac572deb420 (diff)
Fix memory leak due to LogicalRepRelMapEntry.attrmap.
When rebuilding the relation mapping on subscribers, we were not releasing the attribute mapping's memory which was no longer required. The attribute mapping used in logical tuple conversion was refactored in PG13 (by commit e1551f96e6) but we forgot to update the related code that frees the attribute map. Author: Hou Zhijie Reviewed-by: Amit Langote, Amit Kapila, Shi yu Backpatch-through: 10, where it was introduced Discussion: https://postgr.es/m/OSZPR01MB6310F46CD425A967E4AEF736FDA49@OSZPR01MB6310.jpnprd01.prod.outlook.com
-rw-r--r--src/backend/replication/logical/relation.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/backend/replication/logical/relation.c b/src/backend/replication/logical/relation.c
index 16f4c56bfd7..03ddaaaae9e 100644
--- a/src/backend/replication/logical/relation.c
+++ b/src/backend/replication/logical/relation.c
@@ -259,6 +259,13 @@ logicalrep_rel_open(LogicalRepRelId remoteid, LOCKMODE lockmode)
MemoryContext oldctx;
int i;
+ /* Release the no-longer-useful attrmap, if any. */
+ if (entry->attrmap)
+ {
+ pfree(entry->attrmap);
+ entry->attrmap = NULL;
+ }
+
/* Try to find and lock the relation by name. */
relid = RangeVarGetRelid(makeRangeVar(remoterel->nspname,
remoterel->relname, -1),