|
PostgreSQL Source Code git master
|
#include "postgres.h"#include <limits.h>#include "access/gin_private.h"#include "utils/datum.h"#include "utils/memutils.h"
Go to the source code of this file.
Macros | |
| #define | DEF_NENTRY 2048 /* GinEntryAccumulator allocation quantum */ |
| #define | DEF_NPTR 5 /* ItemPointer initial allocation quantum */ |
Functions | |
| static void | ginCombineData (RBTNode *existing, const RBTNode *newdata, void *arg) |
| static int | cmpEntryAccumulator (const RBTNode *a, const RBTNode *b, void *arg) |
| static RBTNode * | ginAllocEntryAccumulator (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) |
| void | ginInsertBAEntries (BuildAccumulator *accum, ItemPointer heapptr, OffsetNumber attnum, Datum *entries, GinNullCategory *categories, int32 nentries) |
| 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) |
| #define DEF_NENTRY 2048 /* GinEntryAccumulator allocation quantum */ |
| #define DEF_NPTR 5 /* ItemPointer initial allocation quantum */ |
Definition at line 72 of file ginbulk.c.
References a, arg, b, fb(), ginCompareAttEntries(), and BuildAccumulator::ginstate.
Referenced by ginInitBA().
|
static |
Definition at line 128 of file ginbulk.c.
References BuildAccumulator::allocatedMemory, attnum, datumCopy(), DatumGetPointer(), fb(), GetMemoryChunkSpace(), BuildAccumulator::ginstate, GinState::origTupdesc, TupleDescCompactAttr(), and value.
Referenced by ginInsertBAEntry().
Definition at line 85 of file ginbulk.c.
References BuildAccumulator::allocatedMemory, arg, DEF_NENTRY, BuildAccumulator::eas_used, BuildAccumulator::entryallocator, fb(), GetMemoryChunkSpace(), and palloc_array.
Referenced by ginInitBA().
| void ginBeginBAScan | ( | BuildAccumulator * | accum | ) |
Definition at line 256 of file ginbulk.c.
References LeftRightWalk, rbt_begin_iterate(), BuildAccumulator::tree, and BuildAccumulator::tree_walk.
Referenced by ginbuild(), ginBuildCallback(), ginFlushBuildState(), and ginInsertCleanup().
Definition at line 30 of file ginbulk.c.
References BuildAccumulator::allocatedMemory, arg, Assert, ereport, errcode(), errhint(), errmsg(), ERROR, fb(), GetMemoryChunkSpace(), ginCompareItemPointers(), and repalloc_huge().
Referenced by ginInitBA().
| ItemPointerData * ginGetBAEntry | ( | BuildAccumulator * | accum, |
| OffsetNumber * | attnum, | ||
| Datum * | key, | ||
| GinNullCategory * | category, | ||
| uint32 * | n | ||
| ) |
Definition at line 267 of file ginbulk.c.
References Assert, GinEntryAccumulator::attnum, attnum, GinEntryAccumulator::category, GinEntryAccumulator::count, fb(), GinEntryAccumulator::key, GinEntryAccumulator::list, qsort, qsortCompareItemPointers(), rbt_iterate(), GinEntryAccumulator::shouldSort, and BuildAccumulator::tree_walk.
Referenced by ginbuild(), ginBuildCallback(), ginFlushBuildState(), and ginInsertCleanup().
| void ginInitBA | ( | BuildAccumulator * | accum | ) |
Definition at line 109 of file ginbulk.c.
References BuildAccumulator::allocatedMemory, cmpEntryAccumulator(), BuildAccumulator::eas_used, BuildAccumulator::entryallocator, fb(), ginAllocEntryAccumulator(), ginCombineData(), rbt_create(), and BuildAccumulator::tree.
Referenced by _gin_parallel_build_main(), ginbuild(), ginBuildCallback(), ginFlushBuildState(), and ginInsertCleanup().
| void ginInsertBAEntries | ( | BuildAccumulator * | accum, |
| ItemPointer | heapptr, | ||
| OffsetNumber | attnum, | ||
| Datum * | entries, | ||
| GinNullCategory * | categories, | ||
| int32 | nentries | ||
| ) |
Definition at line 209 of file ginbulk.c.
References Assert, attnum, fb(), FirstOffsetNumber, ginInsertBAEntry(), i, and ItemPointerIsValid().
Referenced by ginHeapTupleBulkInsert(), and processPendingPage().
|
static |
Definition at line 148 of file ginbulk.c.
References BuildAccumulator::allocatedMemory, GinEntryAccumulator::attnum, attnum, DEF_NPTR, fb(), getDatumCopy(), GetMemoryChunkSpace(), GIN_CAT_NORM_KEY, palloc_array, rbt_insert(), and BuildAccumulator::tree.
Referenced by ginInsertBAEntries().
Definition at line 245 of file ginbulk.c.
References a, Assert, b, and ginCompareItemPointers().
Referenced by ginGetBAEntry().