diff options
| author | Tom Lane <tgl@sss.pgh.pa.us> | 2002-05-24 18:57:57 +0000 |
|---|---|---|
| committer | Tom Lane <tgl@sss.pgh.pa.us> | 2002-05-24 18:57:57 +0000 |
| commit | 3f4d48802271126b1343289a9d2267ff1ed3788a (patch) | |
| tree | b8c7507719ba240834e28cfbb56e2badff118b7e /src/include/access/nbtree.h | |
| parent | 2f2d05763d1c55c7998c0d7030659e3db6f60183 (diff) | |
| download | postgresql-3f4d48802271126b1343289a9d2267ff1ed3788a.tar.gz | |
Mark index entries "killed" when they are no longer visible to any
transaction, so as to avoid returning them out of the index AM. Saves
repeated heap_fetch operations on frequently-updated rows. Also detect
queries on unique keys (equality to all columns of a unique index), and
don't bother continuing scan once we have found first match.
Killing is implemented in the btree and hash AMs, but not yet in rtree
or gist, because there isn't an equally convenient place to do it in
those AMs (the outer amgetnext routine can't do it without re-pinning
the index page).
Did some small cleanup on APIs of HeapTupleSatisfies, heap_fetch, and
index_insert to make this a little easier.
Diffstat (limited to 'src/include/access/nbtree.h')
| -rw-r--r-- | src/include/access/nbtree.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/include/access/nbtree.h b/src/include/access/nbtree.h index c29defba8f..bef621dd68 100644 --- a/src/include/access/nbtree.h +++ b/src/include/access/nbtree.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: nbtree.h,v 1.60 2002/05/20 23:51:43 tgl Exp $ + * $Id: nbtree.h,v 1.61 2002/05/24 18:57:56 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -383,7 +383,7 @@ extern ScanKey _bt_mkscankey(Relation rel, IndexTuple itup); extern ScanKey _bt_mkscankey_nodata(Relation rel); extern void _bt_freeskey(ScanKey skey); extern void _bt_freestack(BTStack stack); -extern void _bt_orderkeys(Relation relation, BTScanOpaque so); +extern void _bt_orderkeys(IndexScanDesc scan); extern bool _bt_checkkeys(IndexScanDesc scan, IndexTuple tuple, ScanDirection dir, bool *continuescan); extern BTItem _bt_formitem(IndexTuple itup); |
