24#define DEF_NENTRY 2048
43 (
errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
44 errmsg(
"posting list is too long"),
45 errhint(
"Reduce \"maintenance_work_mem\".")));
164 eatmp.
list = heapptr;
182 ea->
list[0] = *heapptr;
229 step |= (step >> 16);
237 for (
i = step - 1; i < nentries && i >= 0;
i += step << 1 )
239 entries[
i], categories[
i]);
Datum datumCopy(Datum value, bool typByVal, int typLen)
int errhint(const char *fmt,...)
int errcode(int sqlerrcode)
int errmsg(const char *fmt,...)
#define ereport(elevel,...)
static int ginCompareItemPointers(ItemPointer a, ItemPointer b)
signed char GinNullCategory
static int qsortCompareItemPointers(const void *a, const void *b)
void ginBeginBAScan(BuildAccumulator *accum)
ItemPointerData * ginGetBAEntry(BuildAccumulator *accum, OffsetNumber *attnum, Datum *key, GinNullCategory *category, uint32 *n)
static void ginCombineData(RBTNode *existing, const RBTNode *newdata, void *arg)
static RBTNode * ginAllocEntryAccumulator(void *arg)
void ginInsertBAEntries(BuildAccumulator *accum, ItemPointer heapptr, OffsetNumber attnum, Datum *entries, GinNullCategory *categories, int32 nentries)
static int cmpEntryAccumulator(const RBTNode *a, const RBTNode *b, void *arg)
void ginInitBA(BuildAccumulator *accum)
static Datum getDatumCopy(BuildAccumulator *accum, OffsetNumber attnum, Datum value)
static void ginInsertBAEntry(BuildAccumulator *accum, ItemPointer heapptr, OffsetNumber attnum, Datum key, GinNullCategory category)
int ginCompareAttEntries(GinState *ginstate, OffsetNumber attnuma, Datum a, GinNullCategory categorya, OffsetNumber attnumb, Datum b, GinNullCategory categoryb)
Assert(PointerIsAligned(start, uint64))
static bool ItemPointerIsValid(const ItemPointerData *pointer)
Size GetMemoryChunkSpace(void *pointer)
void * repalloc_huge(void *pointer, Size size)
#define FirstOffsetNumber
#define qsort(a, b, c, d)
static Pointer DatumGetPointer(Datum X)
RBTNode * rbt_iterate(RBTreeIterator *iter)
RBTNode * rbt_insert(RBTree *rbt, const RBTNode *data, bool *isNew)
void rbt_begin_iterate(RBTree *rbt, RBTOrderControl ctrl, RBTreeIterator *iter)
RBTree * rbt_create(Size node_size, rbt_comparator comparator, rbt_combiner combiner, rbt_allocfunc allocfunc, rbt_freefunc freefunc, void *arg)
GinEntryAccumulator * entryallocator
static CompactAttribute * TupleDescCompactAttr(TupleDesc tupdesc, int i)