From d5ea206728de7cb301d2f572055a76d4ea43bc8d Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Fri, 6 Mar 2026 14:49:00 +0900 Subject: [PATCH] Fix inconsistency with HeapTuple freeing in extended_stats_funcs.c heap_freetuple() is a thin wrapper doing a pfree(), and the function import_pg_statistic(), introduced by ba97bf9cb7b4, had the idea to call directly pfree() rather than the "dedicated" heap tuple routine. upsert_pg_statistic_ext_data already uses heap_freetuple(). This code is harmless as-is, but let's be consistent across the board. Reported-by: Yonghao Lee Discussion: https://postgr.es/m/tencent_CA1315EE8FB9C62F742C71E95FAD72214205@qq.com --- src/backend/statistics/extended_stats_funcs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/statistics/extended_stats_funcs.c b/src/backend/statistics/extended_stats_funcs.c index 0ec77a6090f..9279904b465 100644 --- a/src/backend/statistics/extended_stats_funcs.c +++ b/src/backend/statistics/extended_stats_funcs.c @@ -1509,7 +1509,7 @@ import_pg_statistic(Relation pgsd, JsonbContainer *cont, pgstup = heap_form_tuple(RelationGetDescr(pgsd), values, nulls); pgstdat = heap_copy_tuple_as_datum(pgstup, RelationGetDescr(pgsd)); - pfree(pgstup); + heap_freetuple(pgstup); *pg_statistic_ok = true;