-
- Downloads
Support index-only scans using the visibility map to avoid heap fetches.
When a btree index contains all columns required by the query, and the visibility map shows that all tuples on a target heap page are visible-to-all, we don't need to fetch that heap page. This patch depends on the previous patches that made the visibility map reliable. There's a fair amount left to do here, notably trying to figure out a less chintzy way of estimating the cost of an index-only scan, but the core functionality seems ready to commit. Robert Haas and Ibrar Ahmed, with some previous work by Heikki Linnakangas.
Showing
- doc/src/sgml/catalogs.sgml 7 additions, 0 deletionsdoc/src/sgml/catalogs.sgml
- doc/src/sgml/config.sgml 18 additions, 1 deletiondoc/src/sgml/config.sgml
- doc/src/sgml/indexam.sgml 31 additions, 1 deletiondoc/src/sgml/indexam.sgml
- doc/src/sgml/ref/postgres-ref.sgml 5 additions, 2 deletionsdoc/src/sgml/ref/postgres-ref.sgml
- src/backend/access/index/genam.c 4 additions, 0 deletionssrc/backend/access/index/genam.c
- src/backend/access/index/indexam.c 150 additions, 86 deletionssrc/backend/access/index/indexam.c
- src/backend/access/nbtree/nbtree.c 92 additions, 0 deletionssrc/backend/access/nbtree/nbtree.c
- src/backend/commands/explain.c 4 additions, 1 deletionsrc/backend/commands/explain.c
- src/backend/executor/nodeIndexscan.c 114 additions, 9 deletionssrc/backend/executor/nodeIndexscan.c
- src/backend/nodes/copyfuncs.c 1 addition, 0 deletionssrc/backend/nodes/copyfuncs.c
- src/backend/nodes/outfuncs.c 2 additions, 0 deletionssrc/backend/nodes/outfuncs.c
- src/backend/optimizer/path/costsize.c 21 additions, 0 deletionssrc/backend/optimizer/path/costsize.c
- src/backend/optimizer/path/indxpath.c 89 additions, 0 deletionssrc/backend/optimizer/path/indxpath.c
- src/backend/optimizer/plan/createplan.c 6 additions, 3 deletionssrc/backend/optimizer/plan/createplan.c
- src/backend/optimizer/plan/planner.c 1 addition, 1 deletionsrc/backend/optimizer/plan/planner.c
- src/backend/optimizer/util/pathnode.c 6 additions, 2 deletionssrc/backend/optimizer/util/pathnode.c
- src/backend/optimizer/util/plancat.c 1 addition, 0 deletionssrc/backend/optimizer/util/plancat.c
- src/backend/optimizer/util/var.c 29 additions, 14 deletionssrc/backend/optimizer/util/var.c
- src/backend/tcop/postgres.c 4 additions, 1 deletionsrc/backend/tcop/postgres.c
- src/backend/utils/cache/relcache.c 2 additions, 2 deletionssrc/backend/utils/cache/relcache.c
Loading
Please register or sign in to comment