aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2004-12-23 22:42:32 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2004-12-23 22:42:32 +0000
commit715a73427ecb573980875af171ee1e4629ef9b4d (patch)
treef571ffe26d304753b96d8eb39ae32dafe214b7d1 /src/backend/commands
parentb6c56b73e7f552028d73dc05805da8e9784b1158 (diff)
downloadpostgresql-715a73427ecb573980875af171ee1e4629ef9b4d.tar.gz
postgresql-715a73427ecb573980875af171ee1e4629ef9b4d.zip
Avoid memory leakage during VACUUM FULL when an index expression or
index predicate uses temporary memory for evaluation. Per example from Jean-Gerard Pailloncy.
Diffstat (limited to 'src/backend/commands')
-rw-r--r--src/backend/commands/vacuum.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/backend/commands/vacuum.c b/src/backend/commands/vacuum.c
index 8011567f66a..84ee7e8e4b0 100644
--- a/src/backend/commands/vacuum.c
+++ b/src/backend/commands/vacuum.c
@@ -13,7 +13,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.263 2003/10/02 23:19:44 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.263.2.1 2004/12/23 22:42:32 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -2041,6 +2041,7 @@ repair_frag(VRelStats *vacrelstats, Relation onerel,
ExecStoreTuple(&newtup, slot, InvalidBuffer, false);
ExecInsertIndexTuples(slot, &(newtup.t_self),
estate, true);
+ ResetPerTupleExprContext(estate);
}
WriteBuffer(cur_buffer);
@@ -2174,6 +2175,7 @@ repair_frag(VRelStats *vacrelstats, Relation onerel,
{
ExecStoreTuple(&newtup, slot, InvalidBuffer, false);
ExecInsertIndexTuples(slot, &(newtup.t_self), estate, true);
+ ResetPerTupleExprContext(estate);
}
} /* walk along page */