\r
-- without index order should match st_distance order --\r
-- point check\r
-SELECT gid, RANK() OVER(ORDER BY ST_Distance( 'POINT(200 1000)'::geometry, geom) )\r
+SELECT gid, ST_Distance( 'POINT(200 1000)'::geometry, geom)::numeric(10,2)\r
FROM knn_recheck_geom\r
ORDER BY 'POINT(200 1000)'::geometry <-> geom LIMIT 5;\r
\r
-- linestring check\r
-SELECT gid, RANK() OVER(ORDER BY ST_Distance( 'LINESTRING(200 100, -10 600)'::geometry, geom) )\r
+SELECT gid, ST_Distance( 'LINESTRING(200 100, -10 600)'::geometry, geom)::numeric(10,2)\r
FROM knn_recheck_geom\r
ORDER BY 'LINESTRING(200 100, -10 600)'::geometry <-> geom LIMIT 5;\r
\r
-- create index and repeat\r
CREATE INDEX idx_knn_recheck_geom_gist ON knn_recheck_geom USING gist(geom);\r
\r
+set enable_seqscan = false;\r
-- point check after index\r
-SELECT gid, RANK() OVER(ORDER BY ST_Distance( 'POINT(200 1000)'::geometry, geom) )\r
+SELECT gid, ST_Distance( 'POINT(200 1000)'::geometry, geom)::numeric(10,2)\r
FROM knn_recheck_geom\r
ORDER BY 'POINT(200 1000)'::geometry <-> geom LIMIT 5;\r
\r