From: Sandro Santilli Date: Mon, 23 Feb 2015 18:27:38 +0000 (+0000) Subject: Add test for index supported KNN queries X-Git-Tag: 2.2.0rc1~639 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=adedc9fb7046f6f49f004c5189dcb21caba0f77f;p=postgis Add test for index supported KNN queries git-svn-id: http://svn.osgeo.org/postgis/trunk@13272 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/regress/regress_index.sql b/regress/regress_index.sql index 5397dc345..0b27132d6 100644 --- a/regress/regress_index.sql +++ b/regress/regress_index.sql @@ -32,6 +32,20 @@ set enable_seqscan = off; SELECT 'scan_seq', qnodes('select * from test where the_geom && ST_MakePoint(0,0)'); select num,ST_astext(the_geom) from test where the_geom && 'BOX3D(125 125,135 135)'::box3d order by num; +-- Index-supported KNN query + +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), + ST_astext(the_geom) from test + order by the_geom <-> 'LINESTRING(0 0,5 5)'::geometry LIMIT 1; + +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), + ST_astext(the_geom) from test + order by the_geom <#> 'LINESTRING(0 0,5 5)'::geometry LIMIT 1; + CREATE FUNCTION estimate_error(qry text, tol int) RETURNS text LANGUAGE 'plpgsql' VOLATILE AS $$ diff --git a/regress/regress_index_expected b/regress/regress_index_expected index ae75d050d..df1b60941 100644 --- a/regress/regress_index_expected +++ b/regress/regress_index_expected @@ -6,6 +6,10 @@ scan_seq|Index Scan 2594|POINT(130.504303 126.53112) 3618|POINT(130.447205 131.655289) 7245|POINT(128.10466 130.94133) +<-> idx|Index Scan +<-> res1|48589|0.08|POINT(2.33793712 2.44566727) +<#> idx|Index Scan +<#> res1|48589|0.08|POINT(2.33793712 2.44566727) 3+=5:true 924+=60:true 12621+=500:true