Fix inconsistency with HeapTuple freeing in extended_stats_funcs.c
authorMichael Paquier <michael@paquier.xyz>
Fri, 6 Mar 2026 05:49:00 +0000 (14:49 +0900)
committerMichael Paquier <michael@paquier.xyz>
Fri, 6 Mar 2026 05:49:00 +0000 (14:49 +0900)
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 <yonghao_lee@qq.com>
Discussion: https://postgr.es/m/tencent_CA1315EE8FB9C62F742C71E95FAD72214205@qq.com

src/backend/statistics/extended_stats_funcs.c

index 0ec77a6090f84642709884610fe5c18f5e482575..9279904b46537b6fd97ea91c29b5688f32666be2 100644 (file)
@@ -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;