|
PostgreSQL Source Code git master
|
#include "postgres.h"#include "access/genam.h"#include "access/gist_private.h"#include "access/relscan.h"#include "executor/instrument_node.h"#include "lib/pairingheap.h"#include "miscadmin.h"#include "pgstat.h"#include "storage/predicate.h"#include "utils/float.h"#include "utils/memutils.h"#include "utils/rel.h"
Go to the source code of this file.
Functions | |
| static void | gistkillitems (IndexScanDesc scan) |
| static bool | gistindex_keytest (IndexScanDesc scan, IndexTuple tuple, Page page, OffsetNumber offset, bool *recheck_p, bool *recheck_distances_p) |
| static void | gistScanPage (IndexScanDesc scan, GISTSearchItem *pageItem, IndexOrderByDistance *myDistances, TIDBitmap *tbm, int64 *ntids) |
| static GISTSearchItem * | getNextGISTSearchItem (GISTScanOpaque so) |
| static bool | getNextNearest (IndexScanDesc scan) |
| bool | gistgettuple (IndexScanDesc scan, ScanDirection dir) |
| int64 | gistgetbitmap (IndexScanDesc scan, TIDBitmap *tbm) |
| bool | gistcanreturn (Relation index, int attno) |
|
static |
Definition at line 539 of file gistget.c.
References fb(), pairingheap_is_empty, and pairingheap_remove_first().
Referenced by getNextNearest(), gistgetbitmap(), and gistgettuple().
|
static |
Definition at line 561 of file gistget.c.
References CHECK_FOR_INTERRUPTS, GISTSearchItem::data, GISTSearchItem::distances, fb(), getNextGISTSearchItem(), gistScanPage(), GISTSearchItemIsHeap, GISTSearchItem::heap, GISTSearchHeapItem::heapPtr, index_store_float8_orderby_distances(), IndexScanDescData::opaque, pfree(), GISTSearchHeapItem::recheck, GISTSearchHeapItem::recheckDistances, GISTSearchHeapItem::recontup, IndexScanDescData::xs_heaptid, IndexScanDescData::xs_hitup, IndexScanDescData::xs_recheck, and IndexScanDescData::xs_want_itup.
Referenced by gistgettuple().
Definition at line 798 of file gistget.c.
References GIST_COMPRESS_PROC, GIST_FETCH_PROC, index_getprocid(), IndexRelationGetNumberOfKeyAttributes, and OidIsValid.
Referenced by gisthandler().
| int64 gistgetbitmap | ( | IndexScanDesc | scan, |
| TIDBitmap * | tbm | ||
| ) |
Definition at line 746 of file gistget.c.
References CHECK_FOR_INTERRUPTS, GISTSearchItem::distances, fb(), getNextGISTSearchItem(), GIST_ROOT_BLKNO, gistScanPage(), IndexScanDescData::indexRelation, IndexScanDescData::instrument, MemoryContextReset(), IndexScanInstrumentation::nsearches, IndexScanDescData::opaque, pfree(), pgstat_count_index_scan, and IndexScanDescData::xs_hitup.
Referenced by gisthandler().
| bool gistgettuple | ( | IndexScanDesc | scan, |
| ScanDirection | dir | ||
| ) |
Definition at line 613 of file gistget.c.
References GISTSearchItem::blkno, CHECK_FOR_INTERRUPTS, GISTSearchItem::distances, elog, ERROR, fb(), ForwardScanDirection, getNextGISTSearchItem(), getNextNearest(), GIST_ROOT_BLKNO, gistkillitems(), gistScanPage(), IndexScanDescData::indexRelation, IndexScanDescData::instrument, InvalidBlockNumber, IndexScanDescData::kill_prior_tuple, MaxIndexTuplesPerPage, MemoryContextReset(), MemoryContextSwitchTo(), IndexScanInstrumentation::nsearches, IndexScanDescData::numberOfOrderBys, IndexScanDescData::opaque, palloc(), pfree(), pgstat_count_index_scan, IndexScanDescData::xs_heaptid, IndexScanDescData::xs_hitup, IndexScanDescData::xs_recheck, and IndexScanDescData::xs_want_itup.
Referenced by gisthandler().
|
static |
Definition at line 126 of file gistget.c.
References Assert, DatumGetBool(), DatumGetFloat8(), elog, ERROR, fb(), FunctionCall5Coll(), get_float8_infinity(), gistdentryinit(), GistPageIsLeaf, GistTupleIsInvalid, i, index_getattr(), IndexScanDescData::indexRelation, IndexScanDescData::keyData, GISTSTATE::leafTupdesc, IndexScanDescData::numberOfKeys, IndexScanDescData::numberOfOrderBys, ObjectIdGetDatum(), IndexScanDescData::opaque, IndexScanDescData::orderByData, PointerGetDatum(), SK_ISNULL, SK_SEARCHNOTNULL, SK_SEARCHNULL, test(), and UInt16GetDatum().
Referenced by gistScanPage().
|
static |
Definition at line 39 of file gistget.c.
References Assert, BufferGetLSNAtomic(), BufferGetPage(), BufferIsValid(), fb(), GIST_SHARE, gistcheckpage(), GistMarkPageHasGarbage, GistPageIsLeaf, i, IndexScanDescData::indexRelation, InvalidBlockNumber, ItemIdMarkDead, LockBuffer(), MarkBufferDirtyHint(), IndexScanDescData::opaque, PageGetItemId(), ReadBuffer(), UnlockReleaseBuffer(), and XLogRecPtrIsValid.
Referenced by gistgettuple().
|
static |
Definition at line 329 of file gistget.c.
References Assert, GISTSearchItem::blkno, BufferGetBlockNumber(), BufferGetLSNAtomic(), BufferGetPage(), GISTSearchItem::data, GISTSearchItem::distances, fb(), FirstOffsetNumber, GIST_SHARE, gistcheckpage(), gistFetchTuple(), GistFollowRight, gistindex_keytest(), GistPageGetNSN, GistPageGetOpaque, GistPageIsDeleted, GistPageIsLeaf, GISTSearchItemIsHeap, GISTSearchItem::heap, GISTSearchHeapItem::heapPtr, i, IndexScanDescData::ignore_killed_tuples, IndexScanDescData::indexRelation, InvalidBlockNumber, ItemIdIsDead, ItemPointerGetBlockNumber(), LockBuffer(), MemoryContextReset(), MemoryContextSwitchTo(), IndexScanDescData::numberOfOrderBys, OffsetNumberNext, IndexScanDescData::opaque, PageGetItem(), PageGetItemId(), PageGetMaxOffsetNumber(), pairingheap_add(), palloc(), GISTSearchItem::parentlsn, GISTSearchItem::phNode, PredicateLockPage(), ReadBuffer(), GISTSearchHeapItem::recheck, GISTSearchHeapItem::recheckDistances, GISTSearchHeapItem::recontup, GISTPageOpaqueData::rightlink, SizeOfGISTSearchItem, tbm_add_tuples(), UnlockReleaseBuffer(), XLogRecPtrIsValid, IndexScanDescData::xs_hitup, IndexScanDescData::xs_snapshot, and IndexScanDescData::xs_want_itup.
Referenced by getNextNearest(), gistgetbitmap(), and gistgettuple().