65 #define INDEX_SIZE_MASK 0x1FFF
66 #define INDEX_AM_RESERVED_BIT 0x2000
68 #define INDEX_VAR_MASK 0x4000
69 #define INDEX_NULL_MASK 0x8000
71 #define IndexTupleSize(itup) ((Size) ((itup)->t_info & INDEX_SIZE_MASK))
72 #define IndexTupleHasNulls(itup) ((((IndexTuple) (itup))->t_info & INDEX_NULL_MASK))
73 #define IndexTupleHasVarwidths(itup) ((((IndexTuple) (itup))->t_info & INDEX_VAR_MASK))
88 char *tp,
bits8 *bp,
int hasnulls);
166 #define MaxIndexTuplesPerPage \
167 ((int) ((BLCKSZ - SizeOfPageHeaderData) / \
168 (MAXALIGN(sizeof(IndexTupleData) + 1) + sizeof(ItemIdData))))
static Datum values[MAXATTR]
#define Assert(condition)
#define PointerIsValid(pointer)
void index_deform_tuple(IndexTuple tup, TupleDesc tupleDescriptor, Datum *values, bool *isnull)
IndexTuple index_truncate_tuple(TupleDesc sourceDescriptor, IndexTuple source, int leavenatts)
#define IndexTupleHasNulls(itup)
struct IndexAttributeBitMapData IndexAttributeBitMapData
IndexTupleData * IndexTuple
IndexTuple CopyIndexTuple(IndexTuple source)
static Datum index_getattr(IndexTuple tup, int attnum, TupleDesc tupleDesc, bool *isnull)
IndexAttributeBitMapData * IndexAttributeBitMap
void index_deform_tuple_internal(TupleDesc tupleDescriptor, Datum *values, bool *isnull, char *tp, bits8 *bp, int hasnulls)
IndexTuple index_form_tuple_context(TupleDesc tupleDescriptor, const Datum *values, const bool *isnull, MemoryContext context)
struct IndexTupleData IndexTupleData
Datum nocache_index_getattr(IndexTuple tup, int attnum, TupleDesc tupleDesc)
IndexTuple index_form_tuple(TupleDesc tupleDescriptor, const Datum *values, const bool *isnull)
static Size IndexInfoFindDataOffset(unsigned short t_info)
static rewind_source * source
bits8 bits[(INDEX_MAX_KEYS+8 - 1)/8]
#define TupleDescAttr(tupdesc, i)
static bool att_isnull(int ATT, const bits8 *BITS)