From: Sandro Santilli Date: Tue, 24 Feb 2015 09:17:22 +0000 (+0000) Subject: Make sure <#> order is unambiguous for first result X-Git-Tag: 2.2.0rc1~637 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a59ae87c3a41b603f914ee5d9393e72b46416e61;p=postgis Make sure <#> order is unambiguous for first result Before this commit the first 2 points (or more) all had a bounding box distance of 0 so actual order was undefined git-svn-id: http://svn.osgeo.org/postgis/trunk@13279 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/regress/regress_index.sql b/regress/regress_index.sql index 582cca543..2837d14de 100644 --- a/regress/regress_index.sql +++ b/regress/regress_index.sql @@ -47,15 +47,16 @@ SELECT 'scan_seq', qnodes('select * from test where the_geom && ST_MakePoint(0,0 SELECT '<-> idx', qnodes('select * from test order by the_geom <-> ST_MakePoint(0,0)'); SELECT '<-> res1',num, - ST_Distance(the_geom, 'LINESTRING(0 0,5 5)'::geometry)::numeric(10,2), + (the_geom <-> 'LINESTRING(0 0,5 5)'::geometry)::numeric(10,2), ST_astext(the_geom) from test order by the_geom <-> 'LINESTRING(0 0,5 5)'::geometry LIMIT 1; +-- Full table extent: BOX(0.0439142361 0.0197799355,999.955261 999.993652) SELECT '<#> idx', qnodes('select * from test order by the_geom <#> ST_MakePoint(0,0)'); SELECT '<#> res1',num, - ST_Distance(the_geom, 'LINESTRING(0 0,5 5)'::geometry)::numeric(10,2), + (the_geom <#> 'LINESTRING(1000 0,1005 5)'::geometry)::numeric(10,2), ST_astext(the_geom) from test - order by the_geom <#> 'LINESTRING(0 0,5 5)'::geometry LIMIT 1; + order by the_geom <#> 'LINESTRING(1000 0,1005 5)'::geometry LIMIT 1; CREATE FUNCTION estimate_error(qry text, tol int) RETURNS text diff --git a/regress/regress_index_expected b/regress/regress_index_expected index df1b60941..52f5dd1ff 100644 --- a/regress/regress_index_expected +++ b/regress/regress_index_expected @@ -7,9 +7,9 @@ scan_seq|Index Scan 3618|POINT(130.447205 131.655289) 7245|POINT(128.10466 130.94133) <-> idx|Index Scan -<-> res1|48589|0.08|POINT(2.33793712 2.44566727) +<-> res1|48589|0.17|POINT(2.33793712 2.44566727) <#> idx|Index Scan -<#> res1|48589|0.08|POINT(2.33793712 2.44566727) +<#> res1|2057|0.83|POINT(999.173279 3.92185807) 3+=5:true 924+=60:true 12621+=500:true