mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-24 18:55:04 +08:00
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:
parent
0b1b377569
commit
cb253de21a
@ -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);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user