]> granicus.if.org Git - postgresql/commit
Extend r-tree operator classes to handle Y-direction tests equivalent
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 24 Jun 2005 20:53:34 +0000 (20:53 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 24 Jun 2005 20:53:34 +0000 (20:53 +0000)
commitb90f8f20f035c3313f8a284346b5a1d155cfd2f0
tree68ea92accca0015cc6d16c22f860c6c8167a82b6
parent39f3c5d3850f7c50d363e8984280784251317e8b
Extend r-tree operator classes to handle Y-direction tests equivalent
to the existing X-direction tests.  An rtree class now includes 4 actual
2-D tests, 4 1-D X-direction tests, and 4 1-D Y-direction tests.
This involved adding four new Y-direction test operators for each of
box and polygon; I followed the PostGIS project's lead as to the names
of these operators.
NON BACKWARDS COMPATIBLE CHANGE: the poly_overleft (&<) and poly_overright
(&>) operators now have semantics comparable to box_overleft and box_overright.
This is necessary to make r-tree indexes work correctly on polygons.
Also, I changed circle_left and circle_right to agree with box_left and
box_right --- formerly they allowed the boundaries to touch.  This isn't
actually essential given the lack of any r-tree opclass for circles, but
it seems best to sync all the definitions while we are at it.
17 files changed:
contrib/rtree_gist/rtree_gist.c
contrib/rtree_gist/rtree_gist.sql.in
doc/src/sgml/func.sgml
doc/src/sgml/indices.sgml
doc/src/sgml/xindex.sgml
src/backend/access/rtree/rtstrat.c
src/backend/utils/adt/geo_ops.c
src/include/access/rtree.h
src/include/catalog/catversion.h
src/include/catalog/pg_am.h
src/include/catalog/pg_amop.h
src/include/catalog/pg_operator.h
src/include/catalog/pg_proc.h
src/include/utils/geo_decls.h
src/test/regress/expected/opr_sanity.out
src/test/regress/expected/polygon.out
src/test/regress/sql/polygon.sql