From 57d8080a40f51e1ff9eedea602e96e2612161d77 Mon Sep 17 00:00:00 2001 From: Jan Wieck Date: Mon, 3 Jul 2000 23:10:14 +0000 Subject: TOAST WARNING: This is actually broken - we have self-deadlocks due to concurrent changes in buffer management. Vadim and me are working on it. Jan --- src/backend/access/common/heaptuple.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/backend/access/common/heaptuple.c') diff --git a/src/backend/access/common/heaptuple.c b/src/backend/access/common/heaptuple.c index f93bf34db90..319cfff7ca3 100644 --- a/src/backend/access/common/heaptuple.c +++ b/src/backend/access/common/heaptuple.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/common/heaptuple.c,v 1.63 2000/07/02 22:00:24 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/common/heaptuple.c,v 1.64 2000/07/03 23:09:10 wieck Exp $ * * NOTES * The old interface functions have been converted to macros @@ -119,7 +119,11 @@ DataFill(char *data, { case -1: *infomask |= HEAP_HASVARLENA; - data_length = VARSIZE(DatumGetPointer(value[i])); + if (VARATT_IS_EXTERNAL(value[i])) + *infomask |= HEAP_HASEXTERNAL; + if (VARATT_IS_COMPRESSED(value[i])) + *infomask |= HEAP_HASCOMPRESSED; + data_length = VARATT_SIZE(DatumGetPointer(value[i])); memmove(data, DatumGetPointer(value[i]), data_length); break; case sizeof(char): @@ -816,7 +820,7 @@ heap_freetuple(HeapTuple htup) if (htup->t_data != NULL) if (htup->t_datamcxt != NULL && (char *) (htup->t_data) != ((char *) htup + HEAPTUPLESIZE)) - elog(NOTICE, "TELL Jan Wieck: heap_freetuple() found separate t_data"); + pfree(htup->t_data); pfree(htup); } -- cgit v1.2.3