Обсуждение: pgsql: GiST improvements: - make sure we always invoke user-supplied
pgsql: GiST improvements: - make sure we always invoke user-supplied
От
neilc@svr1.postgresql.org (Neil Conway)
Дата:
Log Message:
-----------
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
Modified Files:
--------------
pgsql/doc/src/sgml:
gist.sgml (r1.17 -> r1.18)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/gist.sgml.diff?r1=1.17&r2=1.18)
pgsql/src/backend/access/gist:
gist.c (r1.115 -> r1.116)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/gist/gist.c.diff?r1=1.115&r2=1.116)
gistget.c (r1.45 -> r1.46)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/gist/gistget.c.diff?r1=1.45&r2=1.46)
gistscan.c (r1.56 -> r1.57)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/gist/gistscan.c.diff?r1=1.56&r2=1.57)
pgsql/src/include/access:
gist.h (r1.44 -> r1.45)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/access/gist.h.diff?r1=1.44&r2=1.45)