git.postgresql.org Git - postgresql.git/commit

git projects / postgresql.git / commit
? search:
summary | shortlog | log | commit | commitdiff | tree
(parent: 88d94a1) | patch
Rewrite btree index scans to work a page at a time in all cases (both
Sun, 7 May 2006 01:21:30 +0000 (01:21 +0000)
Sun, 7 May 2006 01:21:30 +0000 (01:21 +0000)
commit 09cb5c0e7d6fbc9dee26dc429e4fc0f2a88e5272
Rewrite btree index scans to work a page at a time in all cases (both
btgettuple and btgetmulti). This eliminates the problem of "re-finding" the
exact stopping point, since the stopping point is effectively always a page
boundary, and index items are never moved across pre-existing page boundaries.
A small penalty is that the keys_are_unique optimization is effectively
disabled (and, therefore, is removed in this patch), causing us to apply
_bt_checkkeys() to at least one more tuple than necessary when looking up a
unique key. However, the advantages for non-unique cases seem great enough to
accept this tradeoff. Aside from simplifying and (sometimes) speeding up the
indexscan code, this will allow us to reimplement btbulkdelete as a largely
sequential scan instead of index-order traversal, thereby significantly
reducing the cost of VACUUM. Those changes will come in a separate patch.

Original patch by Heikki Linnakangas, rework by Tom Lane.
src/backend/access/index/genam.c diff | blob | blame | history
src/backend/access/index/indexam.c diff | blob | blame | history
src/backend/access/nbtree/README diff | blob | blame | history
src/backend/access/nbtree/nbtree.c diff | blob | blame | history
src/backend/access/nbtree/nbtsearch.c diff | blob | blame | history
src/backend/access/nbtree/nbtutils.c diff | blob | blame | history
src/include/access/itup.h diff | blob | blame | history
src/include/access/nbtree.h diff | blob | blame | history
src/include/access/relscan.h diff | blob | blame | history
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /