Opened 13 years ago
Closed 13 years ago
#1453 closed defect (fixed)
ST_Equals(empty, empty) returns false
Reported by: | strk | Owned by: | pramsey |
---|---|---|---|
Priority: | medium | Milestone: | PostGIS 2.0.0 |
Component: | postgis | Version: | master |
Keywords: | Cc: |
Description
Empty isn't equal to self. Shouldn't it ?
Change History (7)
comment:1 by , 13 years ago
comment:2 by , 13 years ago
Gah, it has to do with $1 ~= $2 !!! Both are affected because both insist in requiring bounding box overlap for two geometries to be equal. Does the EMPTY bounding box overlap the EMPTY bounding box ?
Do voids touch ?
comment:3 by , 13 years ago
Actually, ST_Equals uses && and ST_OrderingEquals uses ~=. That is overlaps and contains samebox.
Speaking of which… I'd use samebox for ST_Equals as well, and have samebox return TRUE for empty. They do have the same box !
comment:5 by , 13 years ago
So, ST_Equals is broken only because of the use of && done by the SQL wrapper. _ST_Equals already returns true for 2 EMPTY parameters (no matter type and dimension).
I propose to switch ST_Equals to use ~= which means "same box". There should be no issue with floats vs. double as we always round boxes to float be them computed or cached. If we still don't it's a bug in our side which we want to fix.
comment:6 by , 13 years ago
Politics took over science: http://postgis.refractions.net/pipermail/postgis-devel/2012-January/017743.html
At time of writing we have:
-0 regina +0 pramsey +1 strk +1 chodgson
Unless Mark vetoes out the motion passed for EMPTY being equal to EMPTY.
comment:7 by , 13 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
I've fixed ST_Equals to return TRUE (consistently with _ST_Equals) with r8886.
ST_orderingEquals has the same bug