diff --git a/src/backend/access/common/heaptuple.c b/src/backend/access/common/heaptuple.c index e47c279cb7..305a43851e 100644 --- a/src/backend/access/common/heaptuple.c +++ b/src/backend/access/common/heaptuple.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/common/heaptuple.c,v 1.3 1996/08/27 07:42:13 scrappy Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/common/heaptuple.c,v 1.4 1996/09/19 20:00:37 scrappy Exp $ * * NOTES * The old interface functions have been converted to macros @@ -24,6 +24,7 @@ #include "access/itup.h" #include "access/tupmacs.h" #include "access/skey.h" +#include "access/heapam.h" #include "storage/ipc.h" #include "storage/buf.h" #include "storage/bufmgr.h" @@ -56,12 +57,12 @@ ComputeDataSize(TupleDesc tupleDesc, Datum value[], char nulls[]) { - uint32 length; + uint32 data_length; int i; int numberOfAttributes = tupleDesc->natts; AttributeTupleForm *att = tupleDesc->attrs; - for (length = 0, i = 0; i < numberOfAttributes; i++) { + for (data_length = 0, i = 0; i < numberOfAttributes; i++) { if (nulls[i] != ' ') continue; switch (att[i]->attlen) { @@ -71,35 +72,35 @@ ComputeDataSize(TupleDesc tupleDesc, * must include the additional sizeof long. */ if (att[i]->attalign == 'd') { - length = DOUBLEALIGN(length) + data_length = DOUBLEALIGN(data_length) + VARSIZE(DatumGetPointer(value[i])); } else { - length = INTALIGN(length) + data_length = INTALIGN(data_length) + VARSIZE(DatumGetPointer(value[i])); } break; case sizeof(char): - length++; + data_length++; break; case sizeof(short): - length = SHORTALIGN(length + sizeof(short)); + data_length = SHORTALIGN(data_length + sizeof(short)); break; case sizeof(int32): - length = INTALIGN(length + sizeof(int32)); + data_length = INTALIGN(data_length + sizeof(int32)); break; default: if (att[i]->attlen < sizeof(int32)) elog(WARN, "ComputeDataSize: attribute %d has len %d", i, att[i]->attlen); if (att[i]->attalign == 'd') - length = DOUBLEALIGN(length) + att[i]->attlen; + data_length = DOUBLEALIGN(data_length) + att[i]->attlen; else - length = LONGALIGN(length) + att[i]->attlen; + data_length = LONGALIGN(data_length) + att[i]->attlen; break; } } - return length; + return data_length; } /* ---------------- @@ -114,12 +115,12 @@ DataFill(char *data, char *infomask, bits8 *bit) { - bits8 *bitP; - int bitmask; - uint32 length; + bits8 *bitP = 0; + int bitmask = 0; + uint32 data_length; int i; int numberOfAttributes = tupleDesc->natts; - AttributeTupleForm* att = tupleDesc->attrs; + AttributeTupleForm *att = tupleDesc->attrs; if (bit != NULL) { bitP = &bit[-1]; @@ -154,9 +155,9 @@ DataFill(char *data, } else { data = (char *) INTALIGN(data); } - length = VARSIZE(DatumGetPointer(value[i])); - memmove(data, DatumGetPointer(value[i]),length); - data += length; + data_length = VARSIZE(DatumGetPointer(value[i])); + memmove(data, DatumGetPointer(value[i]),data_length); + data += data_length; break; case sizeof(char): *data = att[i]->attbyval ? @@ -192,7 +193,7 @@ DataFill(char *data, att[i]->attlen); data += att[i]->attlen; } - + break; } } } @@ -256,49 +257,27 @@ int heap_sysattrlen(AttrNumber attno) { HeapTupleData *f = NULL; - int len; switch (attno) { - case SelfItemPointerAttributeNumber: - len = sizeof f->t_ctid; - break; - case ObjectIdAttributeNumber: - len = sizeof f->t_oid; - break; - case MinTransactionIdAttributeNumber: - len = sizeof f->t_xmin; - break; - case MinCommandIdAttributeNumber: - len = sizeof f->t_cmin; - break; - case MaxTransactionIdAttributeNumber: - len = sizeof f->t_xmax; - break; - case MaxCommandIdAttributeNumber: - len = sizeof f->t_cmax; - break; - case ChainItemPointerAttributeNumber: - len = sizeof f->t_chain; - break; + case SelfItemPointerAttributeNumber: return sizeof f->t_ctid; + case ObjectIdAttributeNumber: return sizeof f->t_oid; + case MinTransactionIdAttributeNumber: return sizeof f->t_xmin; + case MinCommandIdAttributeNumber: return sizeof f->t_cmin; + case MaxTransactionIdAttributeNumber: return sizeof f->t_xmax; + case MaxCommandIdAttributeNumber: return sizeof f->t_cmax; + case ChainItemPointerAttributeNumber: return sizeof f->t_chain; + case MinAbsoluteTimeAttributeNumber: return sizeof f->t_tmin; + case MaxAbsoluteTimeAttributeNumber: return sizeof f->t_tmax; + case VersionTypeAttributeNumber: return sizeof f->t_vtype; + case AnchorItemPointerAttributeNumber: elog(WARN, "heap_sysattrlen: field t_anchor does not exist!"); - break; - case MinAbsoluteTimeAttributeNumber: - len = sizeof f->t_tmin; - break; - case MaxAbsoluteTimeAttributeNumber: - len = sizeof f->t_tmax; - break; - case VersionTypeAttributeNumber: - len = sizeof f->t_vtype; - break; + return 0; + default: - elog(WARN, "sysattrlen: System attribute number %d unknown.", - attno); - len = 0; - break; + elog(WARN, "sysattrlen: System attribute number %d unknown.", attno); + return 0; } - return (len); } /* ---------------- @@ -437,7 +416,7 @@ fastgetattr(HeapTuple tup, bool *isnull) { char *tp; /* ptr to att in tuple */ - bits8 *bp; /* ptr to att in tuple */ + bits8 *bp = NULL; /* ptr to att in tuple */ int slow; /* do we have to walk nulls? */ AttributeTupleForm *att = tupleDesc->attrs;