-- float8 check
CREATE TABLE float8tmp (a float8);
\copy float8tmp from 'data/float8.data'
SET enable_seqscan=on;
SELECT count(*) FROM float8tmp WHERE a <  -1890.0;
 count 
-------
   237
(1 row)

SELECT count(*) FROM float8tmp WHERE a <= -1890.0;
 count 
-------
   238
(1 row)

SELECT count(*) FROM float8tmp WHERE a  = -1890.0;
 count 
-------
     1
(1 row)

SELECT count(*) FROM float8tmp WHERE a >= -1890.0;
 count 
-------
   307
(1 row)

SELECT count(*) FROM float8tmp WHERE a >  -1890.0;
 count 
-------
   306
(1 row)

SELECT a, a <-> '-1890.0' FROM float8tmp ORDER BY a <-> '-1890.0' LIMIT 3;
      a       |  ?column?  
--------------+------------
        -1890 |          0
 -2003.634512 | 113.634512
  -1769.73634 |  120.26366
(3 rows)

CREATE INDEX float8idx ON float8tmp USING gist ( a );
SET enable_seqscan=off;
SELECT count(*) FROM float8tmp WHERE a <  -1890.0::float8;
 count 
-------
   237
(1 row)

SELECT count(*) FROM float8tmp WHERE a <= -1890.0::float8;
 count 
-------
   238
(1 row)

SELECT count(*) FROM float8tmp WHERE a  = -1890.0::float8;
 count 
-------
     1
(1 row)

SELECT count(*) FROM float8tmp WHERE a >= -1890.0::float8;
 count 
-------
   307
(1 row)

SELECT count(*) FROM float8tmp WHERE a >  -1890.0::float8;
 count 
-------
   306
(1 row)

EXPLAIN (COSTS OFF)
SELECT a, a <-> '-1890.0' FROM float8tmp ORDER BY a <-> '-1890.0' LIMIT 3;
                     QUERY PLAN                      
-----------------------------------------------------
 Limit
   ->  Index Only Scan using float8idx on float8tmp
         Order By: (a <-> '-1890'::double precision)
(3 rows)

SELECT a, a <-> '-1890.0' FROM float8tmp ORDER BY a <-> '-1890.0' LIMIT 3;
      a       |  ?column?  
--------------+------------
        -1890 |          0
 -2003.634512 | 113.634512
  -1769.73634 |  120.26366
(3 rows)