]> granicus.if.org Git - postgresql/commit
GiST improvements:
authorNeil Conway <neilc@samurai.com>
Tue, 17 May 2005 00:59:30 +0000 (00:59 +0000)
committerNeil Conway <neilc@samurai.com>
Tue, 17 May 2005 00:59:30 +0000 (00:59 +0000)
commiteda6dd32d15fe85bfddf6caf32d1a861c4fa5957
tree4571423ee6d25e00fc02d12ba30a55220acabcf0
parent818bfda1e27b6f5441c9fc6a5bcd9048e8003553
GiST improvements:

- make sure we always invoke user-supplied GiST methods in a short-lived
  memory context. This means the backend isn't exposed to any memory leaks
  that be in those methods (in fact, it is probably a net loss for most
  GiST methods to bother manually freeing memory now). This also means
  we can do away with a lot of ugly manual memory management in the
  GiST code itself.

- keep the current page of a GiST index scan pinned, rather than doing a
  ReadBuffer() for each tuple produced by the scan. Since ReadBuffer() is
  expensive, this is a perf. win

- implement dead tuple killing for GiST indexes (which is easy to do, now
  that we keep a pin on the current scan page). Now all the builtin indexes
  implement dead tuple killing.

- cleanup a lot of ugly code in GiST
doc/src/sgml/gist.sgml
src/backend/access/gist/gist.c
src/backend/access/gist/gistget.c
src/backend/access/gist/gistscan.c
src/include/access/gist.h