Add SP-GiST support for range types.
The implementation is a quad-tree, largely copied from the quad-tree
implementation for points. The lower and upper bound of ranges are the 2d
coordinates, with some extra code to handle empty ranges.
I left out the support for adjacent operator, -|-, from the original patch.
Not because there was necessarily anything wrong with it, but it was more
complicated than the other operators, and I only have limited time for
reviewing. That will follow as a separate patch.
Alexander Korotkov, reviewed by Jeff Davis and me.
Branch
------
master
Details
-------
http://git.postgresql.org/pg/commitdiff/317dd55a9cae160c8d121eaec323a6aea3259fd8
Modified Files
--------------
src/backend/utils/adt/Makefile | 2 +-
src/backend/utils/adt/rangetypes_gist.c | 13 -
src/backend/utils/adt/rangetypes_spgist.c | 748 ++++++++++++++++++++++++++++
src/include/catalog/catversion.h | 2 +-
src/include/catalog/pg_amop.h | 13 +
src/include/catalog/pg_amproc.h | 5 +
src/include/catalog/pg_opclass.h | 1 +
src/include/catalog/pg_opfamily.h | 1 +
src/include/catalog/pg_proc.h | 11 +
src/include/utils/rangetypes.h | 13 +
src/test/regress/expected/opr_sanity.out | 8 +-
src/test/regress/expected/rangetypes.out | 219 ++++++++
src/test/regress/expected/sanity_check.out | 3 +-
src/test/regress/output/misc.source | 3 +-
src/test/regress/sql/rangetypes.sql | 62 +++
15 files changed, 1086 insertions(+), 18 deletions(-)