t_bits alignment fix from Tatsuo Ishii
This commit is contained in:
parent
edd626cb3e
commit
f93281a1a1
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/access/common/heaptuple.c,v 1.41 1998/09/01 04:26:39 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/backend/access/common/heaptuple.c,v 1.42 1998/09/04 18:05:38 momjian Exp $
|
||||||
*
|
*
|
||||||
* NOTES
|
* NOTES
|
||||||
* The old interface functions have been converted to macros
|
* The old interface functions have been converted to macros
|
||||||
@ -809,7 +809,7 @@ heap_formtuple(TupleDesc tupleDescriptor,
|
|||||||
int i;
|
int i;
|
||||||
int numberOfAttributes = tupleDescriptor->natts;
|
int numberOfAttributes = tupleDescriptor->natts;
|
||||||
|
|
||||||
len = sizeof *tuple - sizeof tuple->t_bits;
|
len = offsetof(HeapTuple->t_bits);
|
||||||
|
|
||||||
for (i = 0; i < numberOfAttributes && !hasnull; i++)
|
for (i = 0; i < numberOfAttributes && !hasnull; i++)
|
||||||
{
|
{
|
||||||
@ -957,7 +957,7 @@ heap_addheader(uint32 natts, /* max domain index */
|
|||||||
|
|
||||||
AssertArg(natts > 0);
|
AssertArg(natts > 0);
|
||||||
|
|
||||||
len = sizeof(HeapTupleData) - sizeof(tup->t_bits);
|
len = offsetof(HeapTuple->t_bits);
|
||||||
|
|
||||||
hoff = len = DOUBLEALIGN(len); /* be conservative */
|
hoff = len = DOUBLEALIGN(len); /* be conservative */
|
||||||
len += structlen;
|
len += structlen;
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/storage/large_object/inv_api.c,v 1.38 1998/09/01 04:31:56 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/backend/storage/large_object/inv_api.c,v 1.39 1998/09/04 18:05:39 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -916,7 +916,9 @@ inv_wrold(LargeObjectDesc *obj_desc,
|
|||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
ntup = inv_newtuple(obj_desc, newbuf, newpage, (char *) NULL, tupbytes);
|
ntup = inv_newtuple(obj_desc, newbuf, newpage, (char *) NULL, tupbytes);
|
||||||
dptr = ((char *) ntup) + ntup->t_hoff - sizeof(ntup->t_bits) + sizeof(int4)
|
dptr = ((char *) ntup) + ntup->t_hoff -
|
||||||
|
(sizeof(HeapTupleData) - offsetof(HeapTupleData.t_bits)) +
|
||||||
|
sizeof(int4)
|
||||||
+ sizeof(fsblock->vl_len);
|
+ sizeof(fsblock->vl_len);
|
||||||
|
|
||||||
if (obj_desc->offset > obj_desc->lowbyte) {
|
if (obj_desc->offset > obj_desc->lowbyte) {
|
||||||
@ -996,7 +998,7 @@ inv_newtuple(LargeObjectDesc *obj_desc,
|
|||||||
char *attptr;
|
char *attptr;
|
||||||
|
|
||||||
/* compute tuple size -- no nulls */
|
/* compute tuple size -- no nulls */
|
||||||
hoff = sizeof(HeapTupleData) - sizeof(ntup->t_bits);
|
hoff = offsetof(HeapTuple->t_bits);
|
||||||
|
|
||||||
/* add in olastbyte, varlena.vl_len, varlena.vl_dat */
|
/* add in olastbyte, varlena.vl_len, varlena.vl_dat */
|
||||||
tupsize = hoff + (2 * sizeof(int32)) + nwrite;
|
tupsize = hoff + (2 * sizeof(int32)) + nwrite;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user