8
8
*
9
9
*
10
10
* IDENTIFICATION
11
- * $Header: /cvsroot/pgsql/src/backend/access/common/heaptuple.c,v 1.3 1996/08/27 07:42:13 scrappy Exp $
11
+ * $Header: /cvsroot/pgsql/src/backend/access/common/heaptuple.c,v 1.4 1996/09/19 20:00:37 scrappy Exp $
12
12
*
13
13
* NOTES
14
14
* The old interface functions have been converted to macros
24
24
#include "access/itup.h"
25
25
#include "access/tupmacs.h"
26
26
#include "access/skey.h"
27
+ #include "access/heapam.h"
27
28
#include "storage/ipc.h"
28
29
#include "storage/buf.h"
29
30
#include "storage/bufmgr.h"
@@ -56,12 +57,12 @@ ComputeDataSize(TupleDesc tupleDesc,
56
57
Datum value [],
57
58
char nulls [])
58
59
{
59
- uint32 length ;
60
+ uint32 data_length ;
60
61
int i ;
61
62
int numberOfAttributes = tupleDesc -> natts ;
62
63
AttributeTupleForm * att = tupleDesc -> attrs ;
63
64
64
- for (length = 0 , i = 0 ; i < numberOfAttributes ; i ++ ) {
65
+ for (data_length = 0 , i = 0 ; i < numberOfAttributes ; i ++ ) {
65
66
if (nulls [i ] != ' ' ) continue ;
66
67
67
68
switch (att [i ]-> attlen ) {
@@ -71,35 +72,35 @@ ComputeDataSize(TupleDesc tupleDesc,
71
72
* must include the additional sizeof long.
72
73
*/
73
74
if (att [i ]-> attalign == 'd' ) {
74
- length = DOUBLEALIGN (length )
75
+ data_length = DOUBLEALIGN (data_length )
75
76
+ VARSIZE (DatumGetPointer (value [i ]));
76
77
} else {
77
- length = INTALIGN (length )
78
+ data_length = INTALIGN (data_length )
78
79
+ VARSIZE (DatumGetPointer (value [i ]));
79
80
}
80
81
break ;
81
82
case sizeof (char ):
82
- length ++ ;
83
+ data_length ++ ;
83
84
break ;
84
85
case sizeof (short ):
85
- length = SHORTALIGN (length + sizeof (short ));
86
+ data_length = SHORTALIGN (data_length + sizeof (short ));
86
87
break ;
87
88
case sizeof (int32 ):
88
- length = INTALIGN (length + sizeof (int32 ));
89
+ data_length = INTALIGN (data_length + sizeof (int32 ));
89
90
break ;
90
91
default :
91
92
if (att [i ]-> attlen < sizeof (int32 ))
92
93
elog (WARN , "ComputeDataSize: attribute %d has len %d" ,
93
94
i , att [i ]-> attlen );
94
95
if (att [i ]-> attalign == 'd' )
95
- length = DOUBLEALIGN (length ) + att [i ]-> attlen ;
96
+ data_length = DOUBLEALIGN (data_length ) + att [i ]-> attlen ;
96
97
else
97
- length = LONGALIGN (length ) + att [i ]-> attlen ;
98
+ data_length = LONGALIGN (data_length ) + att [i ]-> attlen ;
98
99
break ;
99
100
}
100
101
}
101
102
102
- return length ;
103
+ return data_length ;
103
104
}
104
105
105
106
/* ----------------
@@ -114,12 +115,12 @@ DataFill(char *data,
114
115
char * infomask ,
115
116
bits8 * bit )
116
117
{
117
- bits8 * bitP ;
118
- int bitmask ;
119
- uint32 length ;
118
+ bits8 * bitP = 0 ;
119
+ int bitmask = 0 ;
120
+ uint32 data_length ;
120
121
int i ;
121
122
int numberOfAttributes = tupleDesc -> natts ;
122
- AttributeTupleForm * att = tupleDesc -> attrs ;
123
+ AttributeTupleForm * att = tupleDesc -> attrs ;
123
124
124
125
if (bit != NULL ) {
125
126
bitP = & bit [-1 ];
@@ -154,9 +155,9 @@ DataFill(char *data,
154
155
} else {
155
156
data = (char * ) INTALIGN (data );
156
157
}
157
- length = VARSIZE (DatumGetPointer (value [i ]));
158
- memmove (data , DatumGetPointer (value [i ]),length );
159
- data += length ;
158
+ data_length = VARSIZE (DatumGetPointer (value [i ]));
159
+ memmove (data , DatumGetPointer (value [i ]),data_length );
160
+ data += data_length ;
160
161
break ;
161
162
case sizeof (char ):
162
163
* data = att [i ]-> attbyval ?
@@ -192,7 +193,7 @@ DataFill(char *data,
192
193
att [i ]-> attlen );
193
194
data += att [i ]-> attlen ;
194
195
}
195
-
196
+ break ;
196
197
}
197
198
}
198
199
}
@@ -256,49 +257,27 @@ int
256
257
heap_sysattrlen (AttrNumber attno )
257
258
{
258
259
HeapTupleData * f = NULL ;
259
- int len ;
260
260
261
261
switch (attno ) {
262
- case SelfItemPointerAttributeNumber :
263
- len = sizeof f -> t_ctid ;
264
- break ;
265
- case ObjectIdAttributeNumber :
266
- len = sizeof f -> t_oid ;
267
- break ;
268
- case MinTransactionIdAttributeNumber :
269
- len = sizeof f -> t_xmin ;
270
- break ;
271
- case MinCommandIdAttributeNumber :
272
- len = sizeof f -> t_cmin ;
273
- break ;
274
- case MaxTransactionIdAttributeNumber :
275
- len = sizeof f -> t_xmax ;
276
- break ;
277
- case MaxCommandIdAttributeNumber :
278
- len = sizeof f -> t_cmax ;
279
- break ;
280
- case ChainItemPointerAttributeNumber :
281
- len = sizeof f -> t_chain ;
282
- break ;
262
+ case SelfItemPointerAttributeNumber : return sizeof f -> t_ctid ;
263
+ case ObjectIdAttributeNumber : return sizeof f -> t_oid ;
264
+ case MinTransactionIdAttributeNumber : return sizeof f -> t_xmin ;
265
+ case MinCommandIdAttributeNumber : return sizeof f -> t_cmin ;
266
+ case MaxTransactionIdAttributeNumber : return sizeof f -> t_xmax ;
267
+ case MaxCommandIdAttributeNumber : return sizeof f -> t_cmax ;
268
+ case ChainItemPointerAttributeNumber : return sizeof f -> t_chain ;
269
+ case MinAbsoluteTimeAttributeNumber : return sizeof f -> t_tmin ;
270
+ case MaxAbsoluteTimeAttributeNumber : return sizeof f -> t_tmax ;
271
+ case VersionTypeAttributeNumber : return sizeof f -> t_vtype ;
272
+
283
273
case AnchorItemPointerAttributeNumber :
284
274
elog (WARN , "heap_sysattrlen: field t_anchor does not exist!" );
285
- break ;
286
- case MinAbsoluteTimeAttributeNumber :
287
- len = sizeof f -> t_tmin ;
288
- break ;
289
- case MaxAbsoluteTimeAttributeNumber :
290
- len = sizeof f -> t_tmax ;
291
- break ;
292
- case VersionTypeAttributeNumber :
293
- len = sizeof f -> t_vtype ;
294
- break ;
275
+ return 0 ;
276
+
295
277
default :
296
- elog (WARN , "sysattrlen: System attribute number %d unknown." ,
297
- attno );
298
- len = 0 ;
299
- break ;
278
+ elog (WARN , "sysattrlen: System attribute number %d unknown." , attno );
279
+ return 0 ;
300
280
}
301
- return (len );
302
281
}
303
282
304
283
/* ----------------
@@ -437,7 +416,7 @@ fastgetattr(HeapTuple tup,
437
416
bool * isnull )
438
417
{
439
418
char * tp ; /* ptr to att in tuple */
440
- bits8 * bp ; /* ptr to att in tuple */
419
+ bits8 * bp = NULL ; /* ptr to att in tuple */
441
420
int slow ; /* do we have to walk nulls? */
442
421
AttributeTupleForm * att = tupleDesc -> attrs ;
443
422
0 commit comments