]> granicus.if.org Git - postgresql/commitdiff
Provide stable test for NULL-values in KNN SP-GiST
authorAlexander Korotkov <akorotkov@postgresql.org>
Fri, 20 Sep 2019 12:31:12 +0000 (15:31 +0300)
committerAlexander Korotkov <akorotkov@postgresql.org>
Fri, 20 Sep 2019 12:33:45 +0000 (15:33 +0300)
f5f084fc3e has removed test because of its instability.  This commit provides
alternative test with determined ordering using extra ORDER BY expression.

Backpatch-through: 12

src/test/regress/expected/create_index_spgist.out
src/test/regress/sql/create_index_spgist.sql

index 81b4a67c3909e59c0e58165d049644c510662716..1dd110dfc51e41a5c46f5b22cae096bbbeb1a596 100644 (file)
@@ -555,6 +555,16 @@ WHERE seq.dist IS DISTINCT FROM idx.dist;
 ---+------+---+---+------+---
 (0 rows)
 
+-- check ORDER BY distance to NULL
+SELECT (SELECT p FROM kd_point_tbl ORDER BY p <-> pt, p <-> '0,0' LIMIT 1)
+FROM (VALUES (point '1,2'), (NULL), ('1234,5678')) pts(pt);
+      p      
+-------------
+ (59,21)
+ (59,21)
+ (1239,5647)
+(3 rows)
+
 EXPLAIN (COSTS OFF)
 SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdef';
                          QUERY PLAN                         
index 66d77286356203ea613a6f2529e75760ee168cea..68632e3732eeccb36a2308c29a84201eafe74327 100644 (file)
@@ -225,6 +225,10 @@ SELECT * FROM quad_point_tbl_ord_seq3 seq FULL JOIN kd_point_tbl_ord_idx3 idx
 ON seq.n = idx.n
 WHERE seq.dist IS DISTINCT FROM idx.dist;
 
+-- check ORDER BY distance to NULL
+SELECT (SELECT p FROM kd_point_tbl ORDER BY p <-> pt, p <-> '0,0' LIMIT 1)
+FROM (VALUES (point '1,2'), (NULL), ('1234,5678')) pts(pt);
+
 
 EXPLAIN (COSTS OFF)
 SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdef';