*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: heapam.h,v 1.27 1998/01/31 04:39:21 momjian Exp $
+ * $Id: heapam.h,v 1.28 1998/02/01 05:38:38 momjian Exp $
*
*-------------------------------------------------------------------------
*/
((isnull) ? (*(isnull) = false) : (dummyret)NULL), \
HeapTupleNoNulls(tup) ? \
( \
- ((tupleDesc)->attrs[(attnum)-1]->attcacheoff > 0) ? \
+ ((tupleDesc)->attrs[(attnum)-1]->attcacheoff > 0 || \
+ (attnum) == 1) ? \
( \
(Datum)fetchatt(&((tupleDesc)->attrs[(attnum)-1]), \
- (char *) (tup) + (tup)->t_hoff + (tupleDesc)->attrs[(attnum)-1]->attcacheoff) \
- ) \
- : \
- ( \
- ((attnum)-1 == 0) ? \
- ( \
- (Datum)fetchatt(&((tupleDesc)->attrs[0]), (char *) (tup) + (tup)->t_hoff) \
- ) \
- : \
- ( \
- nocachegetattr((tup), (attnum), (tupleDesc), (isnull)) \
+ (char *) (tup) + (tup)->t_hoff + \
+ ( \
+ ((attnum) != 1) ? \
+ (tupleDesc)->attrs[(attnum)-1]->attcacheoff \
+ : \
+ 0 \
+ ) \
) \
) \
+ : \
+ nocachegetattr((tup), (attnum), (tupleDesc), (isnull)) \
) \
: \
( \
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: itup.h,v 1.10 1998/01/31 04:39:23 momjian Exp $
+ * $Id: itup.h,v 1.11 1998/02/01 05:38:39 momjian Exp $
*
*-------------------------------------------------------------------------
*/
*(isnull) = false, \
IndexTupleNoNulls(tup) ? \
( \
- ((tupleDesc)->attrs[(attnum)-1]->attcacheoff > 0) ? \
+ ((tupleDesc)->attrs[(attnum)-1]->attcacheoff > 0 || \
+ (attnum) == 1) ? \
( \
(Datum)fetchatt(&((tupleDesc)->attrs[(attnum)-1]), \
- (char *) (tup) + \
- (IndexTupleHasMinHeader(tup) ? sizeof (*(tup)) : \
- IndexInfoFindDataOffset((tup)->t_info)) + \
- (tupleDesc)->attrs[(attnum)-1]->attcacheoff) \
- ) \
- : \
- ( \
- ((attnum)-1 == 0) ? \
- ( \
- (Datum)fetchatt(&((tupleDesc)->attrs[0]), \
- (char *) (tup) + \
- (IndexTupleHasMinHeader(tup) ? sizeof (*(tup)) : \
- IndexInfoFindDataOffset((tup)->t_info))) \
- ) \
- : \
- ( \
- nocache_index_getattr((tup), (attnum), (tupleDesc), (isnull)) \
+ (char *) (tup) + \
+ ( \
+ IndexTupleHasMinHeader(tup) ? \
+ sizeof (*(tup)) \
+ : \
+ IndexInfoFindDataOffset((tup)->t_info) \
+ ) + \
+ ( \
+ ((attnum) != 1) ? \
+ (tupleDesc)->attrs[(attnum)-1]->attcacheoff \
+ : \
+ 0 \
+ ) \
) \
) \
+ : \
+ nocache_index_getattr((tup), (attnum), (tupleDesc), (isnull)) \
) \
: \
( \
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: tupmacs.h,v 1.2 1997/09/07 04:56:17 momjian Exp $
+ * $Id: tupmacs.h,v 1.3 1998/02/01 05:38:40 momjian Exp $
*
*-------------------------------------------------------------------------
*/
* I would eliminate attbyval altogether, but I don't know how. -BRYANH.
*/
#define fetchatt(A, T) \
- ((*(A))->attbyval && (*(A))->attlen != -1 \
- ? ((*(A))->attlen > sizeof(int16) \
- ? (char *) (long) *((int32 *)(T)) \
- : ((*(A))->attlen < sizeof(int16) \
- ? (char *) (long) *((char *)(T)) \
- : (char *) (long) *((int16 *)(T)))) \
- : (char *) (T))
+( \
+ (*(A))->attbyval && (*(A))->attlen != -1 ? \
+ ( \
+ (*(A))->attlen > sizeof(int16) ? \
+ ( \
+ (char *) (long) *((int32 *)(T)) \
+ ) \
+ : \
+ ( \
+ (*(A))->attlen < sizeof(int16) ? \
+ (char *) (long) *((char *)(T)) \
+ : \
+ (char *) (long) *((int16 *)(T))) \
+ ) \
+ : \
+ (char *) (T) \
+)
#endif