[BUGS] BUG #5889: "Intersects" for polygons broken
The following bug has been logged online: Bug reference: 5889 Logged by: Konrad Garus Email address: konrad.ga...@gmail.com PostgreSQL version: 8.4 Operating system: Linux Description:"Intersects" for polygons broken Details: && operator seems to be broken for polygons whose bounding boxes intersect: select polygon'((0,0), (1,2), (0,2))' && polygon'((0.5, 0), (1,0), (1,1))'; ?column? -- t (1 row) It reportedly is different in 9.0 (http://stackoverflow.com/q/5015233/277683) Docs could do better job explaining what types each of the geometry operator supports, and whether intersecting polygons support nonconvex polygons as well, or only uses bounding box as criteria. -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs
Re: [BUGS] BUG #5889: "Intersects" for polygons broken
2011/2/16 Tom Lane : > "Konrad Garus" writes: >> && operator seems to be broken for polygons whose bounding boxes intersect: > >> select polygon'((0,0), (1,2), (0,2))' && polygon'((0.5, 0), (1,0), (1,1))'; >> ?column? >> -- >> t >> (1 row) > > This is fixed as of 9.0; see the release notes at > http://www.postgresql.org/docs/9.0/static/release-9-0.html > which say > > Correct calculations of "overlaps" and "contains" operations for > polygons (Teodor Sigaev) > > The polygon && (overlaps) operator formerly just checked to see > if the two polygons' bounding boxes overlapped. It now does a > more correct check. The polygon @> and <@ (contains/contained > by) operators formerly checked to see if one polygon's vertexes > were all contained in the other; this can wrongly report "true" > for some non-convex polygons. Now they check that all line > segments of one polygon are contained in the other. Thank you. How about the point of more informative docs that would explain supported types, automatic conversions and all such caveats (also for 8.3 and 8.4)? -- Konrad Garus -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs
Re: [BUGS] BUG #5889: "Intersects" for polygons broken
http://www.postgresql.org/docs/current/static/functions-geometry.html I wish it explained what arguments each of the operators accepts, and whether any automatic conversions take place (like polygon to box in that 8.3 issue). What happens when I call ?# or ?- on a polygon and point? Two points? Open path? Some of these are obvious, but others not so much. 2011/3/8 Robert Haas : > On Wed, Feb 16, 2011 at 10:33 AM, Konrad Garus wrote: >> 2011/2/16 Tom Lane : >>> "Konrad Garus" writes: >>>> && operator seems to be broken for polygons whose bounding boxes intersect: >>> >>>> select polygon'((0,0), (1,2), (0,2))' && polygon'((0.5, 0), (1,0), (1,1))'; >>>> ?column? >>>> -- >>>> t >>>> (1 row) >>> >>> This is fixed as of 9.0; see the release notes at >>> http://www.postgresql.org/docs/9.0/static/release-9-0.html >>> which say >>> >>> Correct calculations of "overlaps" and "contains" operations for >>> polygons (Teodor Sigaev) >>> >>> The polygon && (overlaps) operator formerly just checked to see >>> if the two polygons' bounding boxes overlapped. It now does a >>> more correct check. The polygon @> and <@ (contains/contained >>> by) operators formerly checked to see if one polygon's vertexes >>> were all contained in the other; this can wrongly report "true" >>> for some non-convex polygons. Now they check that all line >>> segments of one polygon are contained in the other. >> >> Thank you. How about the point of more informative docs that would >> explain supported types, automatic conversions and all such caveats >> (also for 8.3 and 8.4)? > > I think a lot of these things are already documented. Aren't they? > > -- > Robert Haas > EnterpriseDB: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > -- Konrad Garus -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs