7
7
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
8
8
* Portions Copyright (c) 1994, Regents of the University of California
9
9
*
10
- * $Id: heapam.h,v 1.53 2000/06/18 22:44:23 tgl Exp $
10
+ * $Id: heapam.h,v 1.54 2000/06/30 16:10:49 petere Exp $
11
11
*
12
12
*-------------------------------------------------------------------------
13
13
*/
@@ -100,91 +100,50 @@ extern Datum nocachegetattr(HeapTuple tup, int attnum,
100
100
101
101
#if !defined(DISABLE_COMPLEX_MACRO )
102
102
103
- #define fastgetattr (tup , attnum , tupleDesc , isnull ) \
104
- ( \
105
- AssertMacro((attnum) > 0), \
106
- ((isnull) ? (*(isnull) = false) : (dummyret)NULL), \
107
- HeapTupleNoNulls(tup) ? \
108
- ( \
109
- ((tupleDesc)->attrs[(attnum)-1]->attcacheoff != -1 || \
110
- (attnum) == 1) ? \
111
- ( \
112
- (Datum)fetchatt(&((tupleDesc)->attrs[(attnum)-1]), \
113
- (char *) (tup)->t_data + (tup)->t_data->t_hoff + \
114
- ( \
115
- ((attnum) != 1) ? \
116
- (tupleDesc)->attrs[(attnum)-1]->attcacheoff \
117
- : \
118
- 0 \
119
- ) \
120
- ) \
121
- ) \
122
- : \
123
- nocachegetattr((tup), (attnum), (tupleDesc), (isnull)) \
124
- ) \
125
- : \
126
- ( \
127
- att_isnull((attnum)-1, (tup)->t_data->t_bits) ? \
128
- ( \
129
- ((isnull) ? (*(isnull) = true) : (dummyret)NULL), \
130
- (Datum)NULL \
131
- ) \
132
- : \
133
- ( \
134
- nocachegetattr((tup), (attnum), (tupleDesc), (isnull)) \
135
- ) \
136
- ) \
103
+ #define fastgetattr (tup , attnum , tupleDesc , isnull ) \
104
+ ( \
105
+ AssertMacro((attnum) > 0), \
106
+ ((isnull) ? (*(isnull) = false) : (dummyret)NULL), \
107
+ HeapTupleNoNulls(tup) ? \
108
+ ( \
109
+ ((tupleDesc)->attrs[(attnum)-1]->attcacheoff != -1 || \
110
+ (attnum) == 1) ? \
111
+ ( \
112
+ (Datum)fetchatt(&((tupleDesc)->attrs[(attnum)-1]), \
113
+ (char *) (tup)->t_data + (tup)->t_data->t_hoff + \
114
+ ( \
115
+ ((attnum) != 1) ? \
116
+ (tupleDesc)->attrs[(attnum)-1]->attcacheoff \
117
+ : \
118
+ 0 \
119
+ ) \
120
+ ) \
121
+ ) \
122
+ : \
123
+ nocachegetattr((tup), (attnum), (tupleDesc), (isnull)) \
124
+ ) \
125
+ : \
126
+ ( \
127
+ att_isnull((attnum)-1, (tup)->t_data->t_bits) ? \
128
+ ( \
129
+ ((isnull) ? (*(isnull) = true) : (dummyret)NULL), \
130
+ (Datum)NULL \
131
+ ) \
132
+ : \
133
+ ( \
134
+ nocachegetattr((tup), (attnum), (tupleDesc), (isnull)) \
135
+ ) \
136
+ ) \
137
137
)
138
138
139
- #else /* ! defined(DISABLE_COMPLEX_MACRO) */
139
+ #else /* defined(DISABLE_COMPLEX_MACRO) */
140
140
141
- static Datum
141
+ extern Datum
142
142
fastgetattr (HeapTuple tup , int attnum , TupleDesc tupleDesc ,
143
- bool * isnull )
144
- {
145
- return (
146
- (attnum ) > 0 ?
147
- (
148
- ((isnull ) ? (* (isnull ) = false) : (dummyret ) NULL ),
149
- HeapTupleNoNulls (tup ) ?
150
- (
151
- ((tupleDesc )-> attrs [(attnum ) - 1 ]-> attcacheoff != -1 ||
152
- (attnum ) == 1 ) ?
153
- (
154
- (Datum ) fetchatt (& ((tupleDesc )-> attrs [(attnum ) - 1 ]),
155
- (char * ) (tup )-> t_data + (tup )-> t_data -> t_hoff +
156
- (
157
- ((attnum ) != 1 ) ?
158
- (tupleDesc )-> attrs [(attnum ) - 1 ]-> attcacheoff
159
- :
160
- 0
161
- )
162
- )
163
- )
164
- :
165
- nocachegetattr ((tup ), (attnum ), (tupleDesc ), (isnull ))
166
- )
167
- :
168
- (
169
- att_isnull ((attnum ) - 1 , (tup )-> t_data -> t_bits ) ?
170
- (
171
- ((isnull ) ? (* (isnull ) = true) : (dummyret ) NULL ),
172
- (Datum ) NULL
173
- )
174
- :
175
- (
176
- nocachegetattr ((tup ), (attnum ), (tupleDesc ), (isnull ))
177
- )
178
- )
179
- )
180
- :
181
- (
182
- (Datum ) NULL
183
- )
184
- );
185
- }
143
+ bool * isnull );
144
+
145
+ #endif /* defined(DISABLE_COMPLEX_MACRO) */
186
146
187
- #endif
188
147
189
148
/* ----------------
190
149
* heap_getattr
@@ -206,36 +165,36 @@ fastgetattr(HeapTuple tup, int attnum, TupleDesc tupleDesc,
206
165
*
207
166
* ----------------
208
167
*/
209
- #define heap_getattr (tup , attnum , tupleDesc , isnull ) \
210
- ( \
211
- AssertMacro((tup) != NULL && \
212
- (attnum) > FirstLowInvalidHeapAttributeNumber && \
213
- (attnum) != 0), \
214
- ((attnum) > (int) (tup)->t_data->t_natts) ? \
215
- ( \
216
- ((isnull) ? (*(isnull) = true) : (dummyret)NULL), \
217
- (Datum)NULL \
218
- ) \
219
- : \
220
- ( \
221
- ((attnum) > 0) ? \
222
- ( \
223
- fastgetattr((tup), (attnum), (tupleDesc), (isnull)) \
224
- ) \
225
- : \
226
- ( \
227
- ((isnull) ? (*(isnull) = false) : (dummyret)NULL), \
228
- ((attnum) == SelfItemPointerAttributeNumber) ? \
229
- ( \
230
- (Datum)((char *)&((tup)->t_self)) \
231
- ) \
232
- : \
233
- ( \
234
- (Datum)*(unsigned int *) \
235
- ((char *)(tup)->t_data + heap_sysoffset[-(attnum)-1]) \
236
- ) \
237
- ) \
238
- ) \
168
+ #define heap_getattr (tup , attnum , tupleDesc , isnull ) \
169
+ ( \
170
+ AssertMacro((tup) != NULL && \
171
+ (attnum) > FirstLowInvalidHeapAttributeNumber && \
172
+ (attnum) != 0), \
173
+ ((attnum) > (int) (tup)->t_data->t_natts) ? \
174
+ ( \
175
+ ((isnull) ? (*(isnull) = true) : (dummyret)NULL), \
176
+ (Datum)NULL \
177
+ ) \
178
+ : \
179
+ ( \
180
+ ((attnum) > 0) ? \
181
+ ( \
182
+ fastgetattr((tup), (attnum), (tupleDesc), (isnull)) \
183
+ ) \
184
+ : \
185
+ ( \
186
+ ((isnull) ? (*(isnull) = false) : (dummyret)NULL), \
187
+ ((attnum) == SelfItemPointerAttributeNumber) ? \
188
+ ( \
189
+ (Datum)((char *)&((tup)->t_self)) \
190
+ ) \
191
+ : \
192
+ ( \
193
+ (Datum)*(unsigned int *) \
194
+ ((char *)(tup)->t_data + heap_sysoffset[-(attnum)-1]) \
195
+ ) \
196
+ ) \
197
+ ) \
239
198
)
240
199
241
200
extern HeapAccessStatistics heap_access_stats ; /* in stats.c */
0 commit comments