diff options
Diffstat (limited to 'contrib/cube/sql')
| -rw-r--r-- | contrib/cube/sql/cube.sql | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/contrib/cube/sql/cube.sql b/contrib/cube/sql/cube.sql index 59e7e4159d..7f8b2e3979 100644 --- a/contrib/cube/sql/cube.sql +++ b/contrib/cube/sql/cube.sql @@ -336,10 +336,12 @@ SELECT cube_inter('(1,2,3)'::cube, '(5,6,3)'::cube); -- point args SELECT cube_size('(4,8),(15,16)'::cube); SELECT cube_size('(42,137)'::cube); --- Test of distances +-- Test of distances (euclidean distance may not be bit-exact) -- +SET extra_float_digits = 0; SELECT cube_distance('(1,1)'::cube, '(4,5)'::cube); SELECT '(1,1)'::cube <-> '(4,5)'::cube as d_e; +RESET extra_float_digits; SELECT distance_chebyshev('(1,1)'::cube, '(4,5)'::cube); SELECT '(1,1)'::cube <=> '(4,5)'::cube as d_c; SELECT distance_taxicab('(1,1)'::cube, '(4,5)'::cube); @@ -395,7 +397,9 @@ INSERT INTO test_cube VALUES ('(1,1)'), ('(100000)'), ('(0, 100000)'); -- Some c SET enable_seqscan = false; -- Test different metrics +SET extra_float_digits = 0; SELECT *, c <-> '(100, 100),(500, 500)'::cube as dist FROM test_cube ORDER BY c <-> '(100, 100),(500, 500)'::cube LIMIT 5; +RESET extra_float_digits; SELECT *, c <=> '(100, 100),(500, 500)'::cube as dist FROM test_cube ORDER BY c <=> '(100, 100),(500, 500)'::cube LIMIT 5; SELECT *, c <#> '(100, 100),(500, 500)'::cube as dist FROM test_cube ORDER BY c <#> '(100, 100),(500, 500)'::cube LIMIT 5; @@ -412,7 +416,9 @@ SELECT c~>(-4), c FROM test_cube ORDER BY c~>(-4) LIMIT 15; -- descending by upp -- Same queries with sequential scan (should give the same results as above) RESET enable_seqscan; SET enable_indexscan = OFF; +SET extra_float_digits = 0; SELECT *, c <-> '(100, 100),(500, 500)'::cube as dist FROM test_cube ORDER BY c <-> '(100, 100),(500, 500)'::cube LIMIT 5; +RESET extra_float_digits; SELECT *, c <=> '(100, 100),(500, 500)'::cube as dist FROM test_cube ORDER BY c <=> '(100, 100),(500, 500)'::cube LIMIT 5; SELECT *, c <#> '(100, 100),(500, 500)'::cube as dist FROM test_cube ORDER BY c <#> '(100, 100),(500, 500)'::cube LIMIT 5; SELECT c~>1, c FROM test_cube ORDER BY c~>1 LIMIT 15; -- ascending by left bound |
