Don't mess with HEAP_XMAX_INVALID in heaptuple.c routines; there is

no reason to worry about the tuple commit status bits until the tuple
is inserted in a relation by heapam.c.  Also, improve comments for
heap_addheader().
This commit is contained in:
Tom Lane 2002-09-27 15:04:08 +00:00
parent 0b1b377569
commit cb253de21a

View File

@ -9,7 +9,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/access/common/heaptuple.c,v 1.82 2002/09/04 20:31:08 momjian Exp $ * $Header: /cvsroot/pgsql/src/backend/access/common/heaptuple.c,v 1.83 2002/09/27 15:04:08 tgl Exp $
* *
* NOTES * NOTES
* The old interface functions have been converted to macros * The old interface functions have been converted to macros
@ -617,6 +617,9 @@ heap_formtuple(TupleDesc tupleDescriptor,
td->t_natts = numberOfAttributes; td->t_natts = numberOfAttributes;
td->t_hoff = hoff; td->t_hoff = hoff;
if (tupleDescriptor->tdhasoid) /* else leave infomask = 0 */
td->t_infomask = HEAP_HASOID;
DataFill((char *) td + hoff, DataFill((char *) td + hoff,
tupleDescriptor, tupleDescriptor,
value, value,
@ -624,11 +627,6 @@ heap_formtuple(TupleDesc tupleDescriptor,
&td->t_infomask, &td->t_infomask,
(hasnull ? td->t_bits : NULL)); (hasnull ? td->t_bits : NULL));
if (tupleDescriptor->tdhasoid)
td->t_infomask |= HEAP_HASOID;
td->t_infomask |= HEAP_XMAX_INVALID;
return tuple; return tuple;
} }
@ -736,8 +734,12 @@ heap_freetuple(HeapTuple htup)
* *
* This routine forms a HeapTuple by copying the given structure (tuple * This routine forms a HeapTuple by copying the given structure (tuple
* data) and adding a generic header. Note that the tuple data is * data) and adding a generic header. Note that the tuple data is
* presumed to contain no null fields. It is typically only useful * presumed to contain no null fields and no varlena fields.
* for null-free system tables. *
* This routine is really only useful for certain system tables that are
* known to be fixed-width and null-free. It is used in some places for
* pg_class, but that is a gross hack (it only works because relacl can
* be omitted from the tuple entirely in those places).
* ---------------- * ----------------
*/ */
HeapTuple HeapTuple
@ -770,9 +772,11 @@ heap_addheader(int natts, /* max domain index */
MemSet((char *) td, 0, hoff); MemSet((char *) td, 0, hoff);
td->t_hoff = hoff;
td->t_natts = natts; td->t_natts = natts;
td->t_infomask = withoid ? (HEAP_XMAX_INVALID | HEAP_HASOID) : HEAP_XMAX_INVALID; td->t_hoff = hoff;
if (withoid) /* else leave infomask = 0 */
td->t_infomask = HEAP_HASOID;
memcpy((char *) td + hoff, structure, structlen); memcpy((char *) td + hoff, structure, structlen);