aboutsummaryrefslogtreecommitdiff
path: root/src/backend/access/common/heaptuple.c
diff options
context:
space:
mode:
authorJan Wieck <JanWieck@Yahoo.com>2000-07-03 23:10:14 +0000
committerJan Wieck <JanWieck@Yahoo.com>2000-07-03 23:10:14 +0000
commit57d8080a40f51e1ff9eedea602e96e2612161d77 (patch)
tree6dbed1f7333436cb08af6e7c0d9c55ac5e064750 /src/backend/access/common/heaptuple.c
parentef5bea51e17d36ab06e7e67847a8b1e489d6d189 (diff)
downloadpostgresql-57d8080a40f51e1ff9eedea602e96e2612161d77.tar.gz
postgresql-57d8080a40f51e1ff9eedea602e96e2612161d77.zip
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
Diffstat (limited to 'src/backend/access/common/heaptuple.c')
-rw-r--r--src/backend/access/common/heaptuple.c10
1 files changed, 7 insertions, 3 deletions
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);
}