|
PostgreSQL Source Code git master
|
#include "postgres.h"#include "access/gin_private.h"#include "access/relscan.h"#include "executor/instrument_node.h"#include "pgstat.h"#include "utils/memutils.h"#include "utils/rel.h"
Go to the source code of this file.
Functions | |
| IndexScanDesc | ginbeginscan (Relation rel, int nkeys, int norderbys) |
| static GinScanEntry | ginFillScanEntry (GinScanOpaque so, OffsetNumber attnum, StrategyNumber strategy, int32 searchMode, Datum queryKey, GinNullCategory queryCategory, bool isPartialMatch, Pointer extra_data) |
| static void | ginScanKeyAddHiddenEntry (GinScanOpaque so, GinScanKey key, GinNullCategory queryCategory) |
| static void | ginFillScanKey (GinScanOpaque so, OffsetNumber attnum, StrategyNumber strategy, int32 searchMode, Datum query, uint32 nQueryValues, Datum *queryValues, GinNullCategory *queryCategories, bool *partial_matches, Pointer *extra_data) |
| void | ginFreeScanKeys (GinScanOpaque so) |
| void | ginNewScanKey (IndexScanDesc scan) |
| void | ginrescan (IndexScanDesc scan, ScanKey scankey, int nscankeys, ScanKey orderbys, int norderbys) |
| void | ginendscan (IndexScanDesc scan) |
| IndexScanDesc ginbeginscan | ( | Relation | rel, |
| int | nkeys, | ||
| int | norderbys | ||
| ) |
Definition at line 26 of file ginscan.c.
References ALLOCSET_DEFAULT_SIZES, AllocSetContextCreate, Assert, CurrentMemoryContext, fb(), IndexScanDescData::indexRelation, initGinState(), IndexScanDescData::opaque, palloc_object, and RelationGetIndexScan().
Referenced by ginhandler().
| void ginendscan | ( | IndexScanDesc | scan | ) |
Definition at line 504 of file ginscan.c.
References fb(), ginFreeScanKeys(), MemoryContextDelete(), IndexScanDescData::opaque, and pfree().
Referenced by ginhandler().
|
static |
Definition at line 58 of file ginscan.c.
References GinScanEntryData::attnum, attnum, TBMIterateResult::blockno, GinScanEntryData::buffer, GinScanEntryData::curItem, GinScanEntryData::extra_data, fb(), ginCompareEntries(), i, InvalidBlockNumber, InvalidBuffer, InvalidOffsetNumber, GinScanEntryData::isFinished, GinScanEntryData::isPartialMatch, ItemPointerSetMin, GinScanEntryData::list, GinScanEntryData::matchBitmap, GinScanEntryData::matchIterator, GinScanEntryData::matchNtuples, GinScanEntryData::matchResult, GinScanEntryData::nlist, GinScanEntryData::offset, palloc_object, GinScanEntryData::queryCategory, GinScanEntryData::queryKey, GinScanEntryData::reduceResult, repalloc_array, GinScanEntryData::searchMode, and GinScanEntryData::strategy.
Referenced by ginFillScanKey(), and ginScanKeyAddHiddenEntry().
|
static |
Definition at line 159 of file ginscan.c.
References attnum, GinState::canPartialMatch, fb(), GIN_CAT_EMPTY_ITEM, GIN_CAT_EMPTY_QUERY, GIN_SEARCH_MODE_ALL, GIN_SEARCH_MODE_EVERYTHING, GIN_SEARCH_MODE_INCLUDE_EMPTY, ginFillScanEntry(), ginInitConsistentFunction(), ginScanKeyAddHiddenEntry(), i, ItemPointerSetMin, palloc0_array, and palloc_array.
Referenced by ginNewScanKey().
| void ginFreeScanKeys | ( | GinScanOpaque | so | ) |
Definition at line 237 of file ginscan.c.
References GinScanEntryData::buffer, fb(), i, InvalidBuffer, GinScanEntryData::list, GinScanEntryData::matchBitmap, GinScanEntryData::matchIterator, MemoryContextReset(), pfree(), ReleaseBuffer(), tbm_end_private_iterate(), and tbm_free().
Referenced by ginendscan(), gingetbitmap(), and ginrescan().
| void ginNewScanKey | ( | IndexScanDesc | scan | ) |
Definition at line 267 of file ginscan.c.
References Assert, DatumGetPointer(), ereport, errcode(), errhint(), errmsg(), ERROR, fb(), FirstOffsetNumber, FunctionCall7Coll(), GIN_CAT_EMPTY_QUERY, GIN_CAT_NULL_KEY, GIN_SEARCH_MODE_ALL, GIN_SEARCH_MODE_DEFAULT, GIN_SEARCH_MODE_EVERYTHING, ginFillScanKey(), ginGetStats(), ginScanKeyAddHiddenEntry(), i, INDEX_MAX_KEYS, IndexScanDescData::indexRelation, IndexScanDescData::instrument, InvalidStrategy, j, IndexScanDescData::keyData, Max, MemoryContextSwitchTo(), IndexScanInstrumentation::nsearches, IndexScanDescData::numberOfKeys, IndexScanDescData::opaque, palloc(), palloc0(), pfree(), pgstat_count_index_scan, PointerGetDatum(), RelationGetRelationName, SK_ISNULL, and UInt16GetDatum().
Referenced by gingetbitmap().
| void ginrescan | ( | IndexScanDesc | scan, |
| ScanKey | scankey, | ||
| int | nscankeys, | ||
| ScanKey | orderbys, | ||
| int | norderbys | ||
| ) |
Definition at line 491 of file ginscan.c.
References fb(), ginFreeScanKeys(), IndexScanDescData::keyData, IndexScanDescData::numberOfKeys, and IndexScanDescData::opaque.
Referenced by ginhandler().
|
static |
Definition at line 143 of file ginscan.c.
References fb(), ginFillScanEntry(), i, and InvalidStrategy.
Referenced by ginFillScanKey(), and ginNewScanKey().