From dd218ae7b00ccb4576e0048fc85665c8ae6bcf93 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sun, 20 Nov 2005 19:49:08 +0000 Subject: [PATCH] Remove the t_datamcxt field of HeapTupleData. This was introduced for the convenience of tuptoaster.c and is no longer needed, so may as well get rid of some small amount of overhead. --- src/backend/access/common/heaptuple.c | 12 +----------- src/backend/access/heap/heapam.c | 22 ++++------------------ src/backend/access/heap/tuptoaster.c | 3 +-- src/backend/access/index/genam.c | 3 +-- src/backend/commands/trigger.c | 3 +-- src/backend/commands/vacuum.c | 9 +-------- src/backend/commands/vacuumlazy.c | 4 +--- src/backend/executor/nodeHash.c | 3 +-- src/backend/executor/nodeHashjoin.c | 3 +-- src/backend/utils/cache/relcache.c | 3 +-- src/backend/utils/sort/tuplesort.c | 3 +-- src/backend/utils/sort/tuplestore.c | 3 +-- src/include/access/htup.h | 19 +++++++++---------- 13 files changed, 24 insertions(+), 66 deletions(-) diff --git a/src/backend/access/common/heaptuple.c b/src/backend/access/common/heaptuple.c index 5551f744bb..69634b5763 100644 --- a/src/backend/access/common/heaptuple.c +++ b/src/backend/access/common/heaptuple.c @@ -16,7 +16,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/common/heaptuple.c,v 1.102 2005/10/19 22:30:30 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/access/common/heaptuple.c,v 1.103 2005/11/20 19:49:06 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -623,7 +623,6 @@ heap_copytuple(HeapTuple tuple) newTuple->t_len = tuple->t_len; newTuple->t_self = tuple->t_self; newTuple->t_tableOid = tuple->t_tableOid; - newTuple->t_datamcxt = CurrentMemoryContext; newTuple->t_data = (HeapTupleHeader) ((char *) newTuple + HEAPTUPLESIZE); memcpy((char *) newTuple->t_data, (char *) tuple->t_data, tuple->t_len); return newTuple; @@ -647,7 +646,6 @@ heap_copytuple_with_tuple(HeapTuple src, HeapTuple dest) dest->t_len = src->t_len; dest->t_self = src->t_self; dest->t_tableOid = src->t_tableOid; - dest->t_datamcxt = CurrentMemoryContext; dest->t_data = (HeapTupleHeader) palloc(src->t_len); memcpy((char *) dest->t_data, (char *) src->t_data, src->t_len); } @@ -725,7 +723,6 @@ heap_form_tuple(TupleDesc tupleDescriptor, * HeapTupleData management structure are allocated in one chunk. */ tuple = (HeapTuple) palloc0(HEAPTUPLESIZE + len); - tuple->t_datamcxt = CurrentMemoryContext; tuple->t_data = td = (HeapTupleHeader) ((char *) tuple + HEAPTUPLESIZE); /* @@ -833,7 +830,6 @@ heap_formtuple(TupleDesc tupleDescriptor, * HeapTupleData management structure are allocated in one chunk. */ tuple = (HeapTuple) palloc0(HEAPTUPLESIZE + len); - tuple->t_datamcxt = CurrentMemoryContext; tuple->t_data = td = (HeapTupleHeader) ((char *) tuple + HEAPTUPLESIZE); /* @@ -1516,11 +1512,6 @@ slot_attisnull(TupleTableSlot *slot, int attnum) void heap_freetuple(HeapTuple htup) { - if (htup->t_data != NULL) - if (htup->t_datamcxt != NULL && (char *) (htup->t_data) != - ((char *) htup + HEAPTUPLESIZE)) - pfree(htup->t_data); - pfree(htup); } @@ -1559,7 +1550,6 @@ heap_addheader(int natts, /* max domain index */ len = hoff + structlen; tuple = (HeapTuple) palloc0(HEAPTUPLESIZE + len); - tuple->t_datamcxt = CurrentMemoryContext; tuple->t_data = td = (HeapTupleHeader) ((char *) tuple + HEAPTUPLESIZE); tuple->t_len = len; diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c index fc750884c7..3b4de80b7b 100644 --- a/src/backend/access/heap/heapam.c +++ b/src/backend/access/heap/heapam.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/heap/heapam.c,v 1.201 2005/11/20 18:38:20 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/access/heap/heapam.c,v 1.202 2005/11/20 19:49:07 tgl Exp $ * * * INTERFACE ROUTINES @@ -78,7 +78,6 @@ initscan(HeapScanDesc scan, ScanKey key) */ scan->rs_nblocks = RelationGetNumberOfBlocks(scan->rs_rd); - scan->rs_ctup.t_datamcxt = NULL; scan->rs_ctup.t_data = NULL; scan->rs_cbuf = InvalidBuffer; @@ -129,8 +128,9 @@ heapgettup(Relation relation, /* * debugging stuff * - * check validity of arguments, here and for other functions too Note: no - * locking manipulations needed--this is a local function + * check validity of arguments, here and for other functions too + * + * Note: no locking manipulations needed--this is a local function */ #ifdef HEAPDEBUGALL if (ItemPointerIsValid(tid)) @@ -164,7 +164,6 @@ heapgettup(Relation relation, if (BufferIsValid(*buffer)) ReleaseBuffer(*buffer); *buffer = InvalidBuffer; - tuple->t_datamcxt = NULL; tuple->t_data = NULL; return; } @@ -182,7 +181,6 @@ heapgettup(Relation relation, if (BufferIsValid(*buffer)) ReleaseBuffer(*buffer); *buffer = InvalidBuffer; - tuple->t_datamcxt = NULL; tuple->t_data = NULL; return; } @@ -197,7 +195,6 @@ heapgettup(Relation relation, lineoff = ItemPointerGetOffsetNumber(tid); lpp = PageGetItemId(dp, lineoff); - tuple->t_datamcxt = NULL; tuple->t_data = (HeapTupleHeader) PageGetItem((Page) dp, lpp); tuple->t_len = ItemIdGetLength(lpp); LockBuffer(*buffer, BUFFER_LOCK_UNLOCK); @@ -293,7 +290,6 @@ heapgettup(Relation relation, { bool valid; - tuple->t_datamcxt = NULL; tuple->t_data = (HeapTupleHeader) PageGetItem((Page) dp, lpp); tuple->t_len = ItemIdGetLength(lpp); ItemPointerSet(&(tuple->t_self), page, lineoff); @@ -340,7 +336,6 @@ heapgettup(Relation relation, if (BufferIsValid(*buffer)) ReleaseBuffer(*buffer); *buffer = InvalidBuffer; - tuple->t_datamcxt = NULL; tuple->t_data = NULL; return; } @@ -872,7 +867,6 @@ heap_release_fetch(Relation relation, ReleaseBuffer(buffer); *userbuf = InvalidBuffer; } - tuple->t_datamcxt = NULL; tuple->t_data = NULL; return false; } @@ -895,7 +889,6 @@ heap_release_fetch(Relation relation, ReleaseBuffer(buffer); *userbuf = InvalidBuffer; } - tuple->t_datamcxt = NULL; tuple->t_data = NULL; return false; } @@ -903,7 +896,6 @@ heap_release_fetch(Relation relation, /* * fill in *tuple fields */ - tuple->t_datamcxt = NULL; tuple->t_data = (HeapTupleHeader) PageGetItem((Page) dp, lp); tuple->t_len = ItemIdGetLength(lp); tuple->t_tableOid = RelationGetRelid(relation); @@ -1027,7 +1019,6 @@ heap_get_latest_tid(Relation relation, /* OK to access the tuple */ tp.t_self = ctid; - tp.t_datamcxt = NULL; tp.t_data = (HeapTupleHeader) PageGetItem(dp, lp); tp.t_len = ItemIdGetLength(lp); @@ -1303,7 +1294,6 @@ heap_delete(Relation relation, ItemPointer tid, dp = (PageHeader) BufferGetPage(buffer); lp = PageGetItemId(dp, ItemPointerGetOffsetNumber(tid)); - tp.t_datamcxt = NULL; tp.t_data = (HeapTupleHeader) PageGetItem(dp, lp); tp.t_len = ItemIdGetLength(lp); tp.t_self = *tid; @@ -1612,7 +1602,6 @@ heap_update(Relation relation, ItemPointer otid, HeapTuple newtup, dp = (PageHeader) BufferGetPage(buffer); lp = PageGetItemId(dp, ItemPointerGetOffsetNumber(otid)); - oldtup.t_datamcxt = NULL; oldtup.t_data = (HeapTupleHeader) PageGetItem(dp, lp); oldtup.t_len = ItemIdGetLength(lp); oldtup.t_self = *otid; @@ -2093,7 +2082,6 @@ heap_lock_tuple(Relation relation, HeapTuple tuple, Buffer *buffer, lp = PageGetItemId(dp, ItemPointerGetOffsetNumber(tid)); Assert(ItemIdIsUsed(lp)); - tuple->t_datamcxt = NULL; tuple->t_data = (HeapTupleHeader) PageGetItem((Page) dp, lp); tuple->t_len = ItemIdGetLength(lp); tuple->t_tableOid = RelationGetRelid(relation); @@ -2476,13 +2464,11 @@ heap_restrpos(HeapScanDesc scan) if (!ItemPointerIsValid(&scan->rs_mctid)) { - scan->rs_ctup.t_datamcxt = NULL; scan->rs_ctup.t_data = NULL; } else { scan->rs_ctup.t_self = scan->rs_mctid; - scan->rs_ctup.t_datamcxt = NULL; scan->rs_ctup.t_data = (HeapTupleHeader) 0x1; /* for heapgettup */ heapgettup(scan->rs_rd, 0, diff --git a/src/backend/access/heap/tuptoaster.c b/src/backend/access/heap/tuptoaster.c index 99d725c27c..c18ea54282 100644 --- a/src/backend/access/heap/tuptoaster.c +++ b/src/backend/access/heap/tuptoaster.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/heap/tuptoaster.c,v 1.54 2005/11/20 18:38:20 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/access/heap/tuptoaster.c,v 1.55 2005/11/20 19:49:07 tgl Exp $ * * * INTERFACE ROUTINES @@ -774,7 +774,6 @@ toast_insert_or_update(Relation rel, HeapTuple newtup, HeapTuple oldtup) result_tuple->t_len = new_len; result_tuple->t_self = newtup->t_self; result_tuple->t_tableOid = newtup->t_tableOid; - result_tuple->t_datamcxt = CurrentMemoryContext; new_data = (HeapTupleHeader) ((char *) result_tuple + HEAPTUPLESIZE); result_tuple->t_data = new_data; diff --git a/src/backend/access/index/genam.c b/src/backend/access/index/genam.c index ed604f9c5d..5563b9d597 100644 --- a/src/backend/access/index/genam.c +++ b/src/backend/access/index/genam.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/index/genam.c,v 1.49 2005/10/15 02:49:09 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/access/index/genam.c,v 1.50 2005/11/20 19:49:07 tgl Exp $ * * NOTES * many of the old access method routines have been turned into @@ -98,7 +98,6 @@ RelationGetIndexScan(Relation indexRelation, ItemPointerSetInvalid(&scan->currentMarkData); ItemPointerSetInvalid(&scan->xs_ctup.t_self); - scan->xs_ctup.t_datamcxt = NULL; scan->xs_ctup.t_data = NULL; scan->xs_cbuf = InvalidBuffer; diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c index a3f7c37dc2..81463abba8 100644 --- a/src/backend/commands/trigger.c +++ b/src/backend/commands/trigger.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/trigger.c,v 1.195 2005/10/15 02:49:15 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/commands/trigger.c,v 1.196 2005/11/20 19:49:07 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1769,7 +1769,6 @@ ltrmark:; Assert(ItemIdIsUsed(lp)); - tuple.t_datamcxt = NULL; tuple.t_data = (HeapTupleHeader) PageGetItem((Page) dp, lp); tuple.t_len = ItemIdGetLength(lp); tuple.t_self = *tid; diff --git a/src/backend/commands/vacuum.c b/src/backend/commands/vacuum.c index 506eb23e70..af384cebcd 100644 --- a/src/backend/commands/vacuum.c +++ b/src/backend/commands/vacuum.c @@ -13,7 +13,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/vacuum.c,v 1.317 2005/10/15 02:49:16 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/commands/vacuum.c,v 1.318 2005/11/20 19:49:07 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1338,7 +1338,6 @@ scan_heap(VRelStats *vacrelstats, Relation onerel, continue; } - tuple.t_datamcxt = NULL; tuple.t_data = (HeapTupleHeader) PageGetItem(page, itemid); tuple.t_len = ItemIdGetLength(itemid); ItemPointerSet(&(tuple.t_self), blkno, offnum); @@ -1758,7 +1757,6 @@ repair_frag(VRelStats *vacrelstats, Relation onerel, if (!ItemIdIsUsed(itemid)) continue; - tuple.t_datamcxt = NULL; tuple.t_data = (HeapTupleHeader) PageGetItem(page, itemid); tuple_len = tuple.t_len = ItemIdGetLength(itemid); ItemPointerSet(&(tuple.t_self), blkno, offnum); @@ -1937,7 +1935,6 @@ repair_frag(VRelStats *vacrelstats, Relation onerel, break; } /* OK, switch our attention to the next tuple in chain */ - tp.t_datamcxt = NULL; tp.t_data = nextTdata; tp.t_self = nextTid; tlen = tp.t_len = ItemIdGetLength(nextItemid); @@ -2064,7 +2061,6 @@ repair_frag(VRelStats *vacrelstats, Relation onerel, chain_move_failed = true; break; /* out of check-all-items loop */ } - tp.t_datamcxt = NULL; tp.t_data = PTdata; tlen = tp.t_len = ItemIdGetLength(Pitemid); if (freeCbuf) @@ -2122,7 +2118,6 @@ repair_frag(VRelStats *vacrelstats, Relation onerel, Citemid = PageGetItemId(Cpage, ItemPointerGetOffsetNumber(&(tuple.t_self))); - tuple.t_datamcxt = NULL; tuple.t_data = (HeapTupleHeader) PageGetItem(Cpage, Citemid); tuple_len = tuple.t_len = ItemIdGetLength(Citemid); @@ -2582,7 +2577,6 @@ move_chain_tuple(Relation rel, newitemid = PageGetItemId(dst_page, newoff); /* drop temporary copy, and point to the version on the dest page */ pfree(newtup.t_data); - newtup.t_datamcxt = NULL; newtup.t_data = (HeapTupleHeader) PageGetItem(dst_page, newitemid); ItemPointerSet(&(newtup.t_self), dst_vacpage->blkno, newoff); @@ -2692,7 +2686,6 @@ move_plain_tuple(Relation rel, dst_vacpage->offsets_used, dst_vacpage->offsets_free); newitemid = PageGetItemId(dst_page, newoff); pfree(newtup.t_data); - newtup.t_datamcxt = NULL; newtup.t_data = (HeapTupleHeader) PageGetItem(dst_page, newitemid); ItemPointerSet(&(newtup.t_data->t_ctid), dst_vacpage->blkno, newoff); newtup.t_self = newtup.t_data->t_ctid; diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c index 7f27619901..d0b1d3a6fb 100644 --- a/src/backend/commands/vacuumlazy.c +++ b/src/backend/commands/vacuumlazy.c @@ -31,7 +31,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/vacuumlazy.c,v 1.61 2005/10/15 02:49:16 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/commands/vacuumlazy.c,v 1.62 2005/11/20 19:49:07 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -349,7 +349,6 @@ lazy_scan_heap(Relation onerel, LVRelStats *vacrelstats, continue; } - tuple.t_datamcxt = NULL; tuple.t_data = (HeapTupleHeader) PageGetItem(page, itemid); tuple.t_len = ItemIdGetLength(itemid); ItemPointerSet(&(tuple.t_self), blkno, offnum); @@ -885,7 +884,6 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats) if (!ItemIdIsUsed(itemid)) continue; - tuple.t_datamcxt = NULL; tuple.t_data = (HeapTupleHeader) PageGetItem(page, itemid); tuple.t_len = ItemIdGetLength(itemid); ItemPointerSet(&(tuple.t_self), blkno, offnum); diff --git a/src/backend/executor/nodeHash.c b/src/backend/executor/nodeHash.c index 8c51e785b2..06978d1f98 100644 --- a/src/backend/executor/nodeHash.c +++ b/src/backend/executor/nodeHash.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/executor/nodeHash.c,v 1.96 2005/10/15 02:49:17 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/executor/nodeHash.c,v 1.97 2005/11/20 19:49:07 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -621,7 +621,6 @@ ExecHashTableInsert(HashJoinTable hashtable, memcpy((char *) &hashTuple->htup, (char *) tuple, sizeof(hashTuple->htup)); - hashTuple->htup.t_datamcxt = hashtable->batchCxt; hashTuple->htup.t_data = (HeapTupleHeader) (((char *) hashTuple) + MAXALIGN(sizeof(HashJoinTupleData))); memcpy((char *) hashTuple->htup.t_data, diff --git a/src/backend/executor/nodeHashjoin.c b/src/backend/executor/nodeHashjoin.c index 817f3822ef..856fe67732 100644 --- a/src/backend/executor/nodeHashjoin.c +++ b/src/backend/executor/nodeHashjoin.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/executor/nodeHashjoin.c,v 1.75 2005/10/18 01:06:24 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/executor/nodeHashjoin.c,v 1.76 2005/11/20 19:49:07 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -789,7 +789,6 @@ ExecHashJoinGetSavedTuple(HashJoinState *hjstate, errmsg("could not read from hash-join temporary file: %m"))); heapTuple = palloc(HEAPTUPLESIZE + htup.t_len); memcpy((char *) heapTuple, (char *) &htup, sizeof(HeapTupleData)); - heapTuple->t_datamcxt = CurrentMemoryContext; heapTuple->t_data = (HeapTupleHeader) ((char *) heapTuple + HEAPTUPLESIZE); nread = BufFileRead(file, (void *) heapTuple->t_data, htup.t_len); diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c index e877c1f828..2b58874ac7 100644 --- a/src/backend/utils/cache/relcache.c +++ b/src/backend/utils/cache/relcache.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/cache/relcache.c,v 1.230 2005/10/15 02:49:31 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/cache/relcache.c,v 1.231 2005/11/20 19:49:07 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -2998,7 +2998,6 @@ load_relcache_init_file(void) goto read_failed; /* Fix up internal pointers in the tuple -- see heap_copytuple */ - rel->rd_indextuple->t_datamcxt = CurrentMemoryContext; rel->rd_indextuple->t_data = (HeapTupleHeader) ((char *) rel->rd_indextuple + HEAPTUPLESIZE); rel->rd_index = (Form_pg_index) GETSTRUCT(rel->rd_indextuple); diff --git a/src/backend/utils/sort/tuplesort.c b/src/backend/utils/sort/tuplesort.c index d38d5e2d41..38120575f6 100644 --- a/src/backend/utils/sort/tuplesort.c +++ b/src/backend/utils/sort/tuplesort.c @@ -78,7 +78,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/sort/tuplesort.c,v 1.54 2005/10/25 13:47:08 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/sort/tuplesort.c,v 1.55 2005/11/20 19:49:08 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -2071,7 +2071,6 @@ readtup_heap(Tuplesortstate *state, int tapenum, unsigned int len) /* reconstruct the HeapTupleData portion */ tuple->t_len = len - sizeof(unsigned int); ItemPointerSetInvalid(&(tuple->t_self)); - tuple->t_datamcxt = CurrentMemoryContext; tuple->t_data = (HeapTupleHeader) (((char *) tuple) + HEAPTUPLESIZE); /* read in the tuple proper */ if (LogicalTapeRead(state->tapeset, tapenum, (void *) tuple->t_data, diff --git a/src/backend/utils/sort/tuplestore.c b/src/backend/utils/sort/tuplestore.c index d409121418..bdd04e21f4 100644 --- a/src/backend/utils/sort/tuplestore.c +++ b/src/backend/utils/sort/tuplestore.c @@ -36,7 +36,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/sort/tuplestore.c,v 1.23 2005/10/15 02:49:37 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/sort/tuplestore.c,v 1.24 2005/11/20 19:49:08 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -707,7 +707,6 @@ readtup_heap(Tuplestorestate *state, unsigned int len) /* reconstruct the HeapTupleData portion */ tuple->t_len = len - sizeof(unsigned int); ItemPointerSetInvalid(&(tuple->t_self)); - tuple->t_datamcxt = CurrentMemoryContext; tuple->t_data = (HeapTupleHeader) (((char *) tuple) + HEAPTUPLESIZE); /* read in the tuple proper */ if (BufFileRead(state->myfile, (void *) tuple->t_data, diff --git a/src/include/access/htup.h b/src/include/access/htup.h index f6fbd8f04a..3a10fa34fd 100644 --- a/src/include/access/htup.h +++ b/src/include/access/htup.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/access/htup.h,v 1.78 2005/10/15 02:49:42 momjian Exp $ + * $PostgreSQL: pgsql/src/include/access/htup.h,v 1.79 2005/11/20 19:49:08 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -361,20 +361,20 @@ do { \ * * * Pointer to a tuple in a disk buffer: t_data points directly into the * buffer (which the code had better be holding a pin on, but this is not - * reflected in HeapTupleData itself). t_datamcxt must be NULL. + * reflected in HeapTupleData itself). * - * * Pointer to nothing: t_data and t_datamcxt are NULL. This is used as - * a failure indication in some functions. + * * Pointer to nothing: t_data is NULL. This is used as a failure indication + * in some functions. * * * Part of a palloc'd tuple: the HeapTupleData itself and the tuple * form a single palloc'd chunk. t_data points to the memory location - * immediately following the HeapTupleData struct (at offset HEAPTUPLESIZE), - * and t_datamcxt is the containing context. This is used as the output - * format of heap_form_tuple and related routines. + * immediately following the HeapTupleData struct (at offset HEAPTUPLESIZE). + * This is the output format of heap_form_tuple and related routines. * * * Separately allocated tuple: t_data points to a palloc'd chunk that - * is not adjacent to the HeapTupleData, and t_datamcxt is the context - * containing that chunk. + * is not adjacent to the HeapTupleData. (This case is deprecated since + * it's difficult to tell apart from case #1. It should be used only in + * limited contexts where the code knows that case #1 will never apply.) * * t_len should always be valid, except in the pointer-to-nothing case. * t_self and t_tableOid should be valid if the HeapTupleData points to @@ -386,7 +386,6 @@ typedef struct HeapTupleData uint32 t_len; /* length of *t_data */ ItemPointerData t_self; /* SelfItemPointer */ Oid t_tableOid; /* table the tuple came from */ - MemoryContext t_datamcxt; /* memory context of allocation */ HeapTupleHeader t_data; /* -> tuple header and data */ } HeapTupleData; -- 2.40.0