GiST improvements:
Neil Conway <neilc@samurai.com>
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
Files
| Path | Change | +/− |
|---|---|---|
| doc/src/sgml/gist.sgml | modified | +2 −2 |
| src/backend/access/gist/gist.c | modified | +250 −403 |
| src/backend/access/gist/gistget.c | modified | +184 −193 |
| src/backend/access/gist/gistscan.c | modified | +160 −108 |
| src/include/access/gist.h | modified | +23 −12 |