]> granicus.if.org Git - postgresql/commit
Add SP-GiST (space-partitioned GiST) index access method.
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 17 Dec 2011 21:41:16 +0000 (16:41 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 17 Dec 2011 21:42:30 +0000 (16:42 -0500)
commit8daeb5ddd698f661eb118f8e874e7c68cfd6ae09
tree765599b73e45a6ca5529398489f31a534ab1924e
parent19fc0fe3ae7861a8b0d3ab8b67bd01fde33bf2da
Add SP-GiST (space-partitioned GiST) index access method.

SP-GiST is comparable to GiST in flexibility, but supports non-balanced
partitioned search structures rather than balanced trees.  As described at
PGCon 2011, this new indexing structure can beat GiST in both index build
time and query speed for search problems that it is well matched to.

There are a number of areas that could still use improvement, but at this
point the code seems committable.

Teodor Sigaev and Oleg Bartunov, with considerable revisions by Tom Lane
46 files changed:
doc/src/sgml/acronyms.sgml
doc/src/sgml/filelist.sgml
doc/src/sgml/indices.sgml
doc/src/sgml/mvcc.sgml
doc/src/sgml/postgres.sgml
doc/src/sgml/ref/alter_opfamily.sgml
doc/src/sgml/ref/create_index.sgml
doc/src/sgml/ref/create_opclass.sgml
doc/src/sgml/ref/create_table.sgml
doc/src/sgml/spgist.sgml [new file with mode: 0644]
doc/src/sgml/xindex.sgml
src/backend/access/Makefile
src/backend/access/common/reloptions.c
src/backend/access/spgist/Makefile [new file with mode: 0644]
src/backend/access/spgist/README [new file with mode: 0644]
src/backend/access/spgist/spgdoinsert.c [new file with mode: 0644]
src/backend/access/spgist/spginsert.c [new file with mode: 0644]
src/backend/access/spgist/spgkdtreeproc.c [new file with mode: 0644]
src/backend/access/spgist/spgquadtreeproc.c [new file with mode: 0644]
src/backend/access/spgist/spgscan.c [new file with mode: 0644]
src/backend/access/spgist/spgtextproc.c [new file with mode: 0644]
src/backend/access/spgist/spgutils.c [new file with mode: 0644]
src/backend/access/spgist/spgvacuum.c [new file with mode: 0644]
src/backend/access/spgist/spgxlog.c [new file with mode: 0644]
src/backend/access/transam/rmgr.c
src/backend/utils/adt/selfuncs.c
src/include/access/gin_private.h
src/include/access/reloptions.h
src/include/access/rmgr.h
src/include/access/spgist.h [new file with mode: 0644]
src/include/access/spgist_private.h [new file with mode: 0644]
src/include/catalog/catversion.h
src/include/catalog/pg_am.h
src/include/catalog/pg_amop.h
src/include/catalog/pg_amproc.h
src/include/catalog/pg_opclass.h
src/include/catalog/pg_opfamily.h
src/include/catalog/pg_proc.h
src/include/utils/builtins.h
src/include/utils/selfuncs.h
src/test/regress/expected/create_index.out
src/test/regress/expected/opr_sanity.out
src/test/regress/expected/sanity_check.out
src/test/regress/output/misc.source
src/test/regress/sql/create_index.sql
src/test/regress/sql/opr_sanity.sql