Thread: pgsql: Improve implementation of range-contains-element tests.

pgsql: Improve implementation of range-contains-element tests.

From
Tom Lane
Date:
Improve implementation of range-contains-element tests.

Implement these tests directly instead of constructing a singleton range
and then applying range-contains.  This saves a range serialize/deserialize
cycle as well as a couple of redundant bound-comparison steps, and adds
very little code on net.

Remove elem_contained_by_range from the GiST opclass: it doesn't belong
there because there is no way to use it in an index clause (where the
indexed column would have to be on the left).  Its commutator is in the
opclass, and that's what counts.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/cddc819e45010492da00164d225a749661f43aef

Modified Files
--------------
src/backend/utils/adt/rangetypes.c       |   65 ++++++++++++++-----
src/backend/utils/adt/rangetypes_gist.c  |  105 ++++++++++++------------------
src/include/catalog/catversion.h         |    2 +-
src/include/catalog/pg_amop.h            |    1 -
src/test/regress/expected/opr_sanity.out |    3 +-
5 files changed, 92 insertions(+), 84 deletions(-)