From: Jan Wieck Date: Fri, 21 Jul 2000 11:18:51 +0000 (+0000) Subject: Need to switch to tuples memory context when replacing the toasted X-Git-Tag: REL9_0_0~22820 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=0143d391c637daa8ebea41bc2c7a1f97660d4246;p=pg-rex%2Fsyncrep.git Need to switch to tuples memory context when replacing the toasted one with the plain one. Jan --- diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c index 16d2ed470e..08c9b87b79 100644 --- a/src/backend/access/heap/heapam.c +++ b/src/backend/access/heap/heapam.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/heap/heapam.c,v 1.80 2000/07/21 10:31:30 wieck Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/heap/heapam.c,v 1.81 2000/07/21 11:18:51 wieck Exp $ * * * INTERFACE ROUTINES @@ -1360,7 +1360,11 @@ heap_insert(Relation relation, HeapTuple tup) { if (tup->t_datamcxt != NULL && (char *) (tup->t_data) != ((char *) tup + HEAPTUPLESIZE)) + { + MemoryContext oldcxt = MemoryContextSwitchTo(tup->t_datamcxt); pfree(tup->t_data); + MemoryContextSwitchTo(oldcxt); + } tup->t_data = plaintdata; tup->t_len = plaintlen; } @@ -1672,7 +1676,11 @@ l2: { if (newtup->t_datamcxt != NULL && (char *) (newtup->t_data) != ((char *) newtup + HEAPTUPLESIZE)) + { + MemoryContext oldcxt = MemoryContextSwitchTo(newtup->t_datamcxt); pfree(newtup->t_data); + MemoryContextSwitchTo(oldcxt); + } newtup->t_data = plaintdata; newtup->t_len = plaintlen; }