aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2021-03-18 20:37:09 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2021-03-18 20:37:09 -0400
commitfbcc9fe33c43a3fb79812b72960df4909a4551e5 (patch)
tree8100a932d7266cb2935d48e111e2db5085752781
parenta5eb70cfca5bc252d7913eb6bb0ff304c4b7d7ae (diff)
downloadpostgresql-fbcc9fe33c43a3fb79812b72960df4909a4551e5.tar.gz
postgresql-fbcc9fe33c43a3fb79812b72960df4909a4551e5.zip
Don't leak rd_statlist when a relcache entry is dropped.
Although these lists are usually NIL, and even when not empty are unlikely to be large, constant relcache update traffic could eventually result in visible bloat of CacheMemoryContext. Found via valgrind testing. Back-patch to v10 where this field was added. Discussion: https://postgr.es/m/3816764.1616104288@sss.pgh.pa.us
-rw-r--r--src/backend/utils/cache/relcache.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c
index d0ad738c240..c6e3dc30169 100644
--- a/src/backend/utils/cache/relcache.c
+++ b/src/backend/utils/cache/relcache.c
@@ -2348,6 +2348,7 @@ RelationDestroyRelation(Relation relation, bool remember_tupdesc)
FreeTriggerDesc(relation->trigdesc);
list_free_deep(relation->rd_fkeylist);
list_free(relation->rd_indexlist);
+ list_free(relation->rd_statlist);
bms_free(relation->rd_indexattr);
bms_free(relation->rd_keyattr);
bms_free(relation->rd_pkattr);