While trying to fix a largely unrelated bug, I noticed that the new build_tlist_index() call for the "excluded" targetlist (used by ON CONFLICT DO UPDATE queries) does not have its memory subsequently freed by the caller. Since every other call to build_tlist_index() does this, and comments above build_tlist_index() encourage it, I think the new caller should do the same.
Attached patch adds such a pfree() call. -- Peter Geoghegan
diff --git a/src/backend/optimizer/plan/setrefs.c b/src/backend/optimizer/plan/setrefs.c index 90e13e4..8afe6a3 100644 --- a/src/backend/optimizer/plan/setrefs.c +++ b/src/backend/optimizer/plan/setrefs.c @@ -776,6 +776,8 @@ set_plan_refs(PlannerInfo *root, Plan *plan, int rtoffset) linitial_int(splan->resultRelations), rtoffset); + pfree(itlist); + splan->exclRelTlist = fix_scan_list(root, splan->exclRelTlist, rtoffset); }
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers