From 034fffbf31be42c789f4a5fbe2edb62e4b07fa9c Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sun, 31 Jan 2010 18:15:39 +0000 Subject: Fix memory leak created by deferrable-index-constraints patches. We need to free the OID list returned by ExecInsertIndexTuples to avoid a query-lifespan memory leak. When many rows require rechecking, this can be a significant leak --- it's even more than the space used for the queued trigger events. Dean Rasheed --- src/backend/commands/copy.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/backend/commands/copy.c') diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c index b7e1a175b5..cfaa3927bc 100644 --- a/src/backend/commands/copy.c +++ b/src/backend/commands/copy.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/copy.c,v 1.321 2010/01/15 09:19:01 heikki Exp $ + * $PostgreSQL: pgsql/src/backend/commands/copy.c,v 1.322 2010/01/31 18:15:39 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -2172,6 +2172,8 @@ CopyFrom(CopyState cstate) ExecARInsertTriggers(estate, resultRelInfo, tuple, recheckIndexes); + list_free(recheckIndexes); + /* * We count only tuples not suppressed by a BEFORE INSERT trigger; * this is the same definition used by execMain.c for counting -- cgit v1.2.3