Opened 13 years ago
Closed 13 years ago
#1160 closed enhancement (fixed)
operator = returns wrong results checking two POINTS
Reported by: | gabrimonfa | Owned by: | pramsey |
---|---|---|---|
Priority: | medium | Milestone: | PostGIS 1.5.4 |
Component: | documentation | Version: | 1.5.X |
Keywords: | Cc: |
Description
The query
SELECT '0101000000EC51B85E200D3A4114AE47318E635241'::geometry = '010100000052B81E45200D3A417B14AE378E635241'::geometry;
should return false since the two POINTS are different.
I have tried on 1.5.3 (current stable).
The problem is probably present also on older releases (I've tried on 1.5.2 compiled by source and on 1.3.3)
In current (2011-08-16) 2.0.0SVN the query returns the correct result (confirmed by strk on IRC)
Change History (4)
comment:1 by , 13 years ago
Milestone: | PostGIS 2.0.0 → PostGIS 1.5.4 |
---|---|
Resolution: | → wontfix |
Status: | new → closed |
comment:2 by , 13 years ago
robe,
it's ok for me to close the bug.
I would suggest. however, to add a word of caution to the doc of current stable version to point out that float4 is used for bounding boxes.
SELECT ST_AsText('0101000000EC51B85E200D3A4114AE47318E635241'::geometry),ST_AsText('010100000052B81E45200D3A417B14AE378E635241'::geometry); st_astext | st_astext ------------------------------------------------------------ POINT(1707296.37 4820536.77) | POINT(1707296.27 4820536.87)
As you can see the 2 points are not so close and one would think that the bounding box of a point is the point itself.
Without knowing that float4 is used for bounding boxes the result may indeed appear to be wrong.
comment:3 by , 13 years ago
Resolution: | wontfix |
---|---|
Status: | closed → reopened |
comment:4 by , 13 years ago
Component: | postgis → documentation |
---|---|
Resolution: | → fixed |
Status: | reopened → closed |
Type: | defect → enhancement |
gabrimonfa,
I don't think this is a bug. First of all you are using = instead the hex compare or ST_Equals. The = operator just compares float4 bounding boxes in prior versions.
In 2.0 this is a double precision box so its not a surprise 2.0 gives a more correct answer.
If you get true with ST_Equals, then there is an issue, otherwise I'll just dismiss this as a limitation for float4 boxes. Paul can confirm.