]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Don't leak rd_statlist when a relcache entry is dropped.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 19 Mar 2021 00:37:09 +0000 (20:37 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 19 Mar 2021 00:37:09 +0000 (20:37 -0400)
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

src/backend/utils/cache/relcache.c

index e29efa102397fd6d5c6fd344b049a3a55a445129..e516012c17c2e2f2557dd1b1b511dde88c14eba5 100644 (file)
@@ -2268,6 +2268,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_projindexattr);
        bms_free(relation->rd_keyattr);