Hello,
I noticed the following operator definitions.
gistest=# select o.oid,oprname,oprleft::regtype,oprright::regtype,oprcode,prosrc
from pg_operator o, pg_proc p
where o.oprcode = p.oid and p.prosrc =
'gserialized_contains_box2df_box2df_2d';
oid | oprname | oprleft | oprright | oprcode |
prosrc
-------+---------+---------+----------+------------------------+---------------------------------------
80884 | && | box2df | box2df | public.overlaps_2d |
gserialized_contains_box2df_box2df_2d
80886 | @ | box2df | box2df | public.is_contained_2d |
gserialized_contains_box2df_box2df_2d
80885 | ~ | box2df | box2df | public.contains_2d |
gserialized_contains_box2df_box2df_2d
(3 rows)
It means all of the &&(box2df,box2df), @(box2df,box2df) and
~(box2df,box2df) calls
identical logic even though they should perform as different operators.
Fortunately, here is no functions that return box2df type, so it is
not easy to reproduce
any problems, however, it is confusing to understand the PostGIS implementation.
Best regards,
--
HeteroDB, Inc / The PG-Strom Project
KaiGai Kohei <[email protected]>
_______________________________________________
postgis-users mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/postgis-users