1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
set enable_seqscan=off;
CREATE TABLE test_money (
i money
);
INSERT INTO test_money VALUES ('-2'),('-1'),('0'),('1'),('2'),('3');
CREATE INDEX idx_money ON test_money USING rum (i);
SELECT * FROM test_money WHERE i<'1'::money ORDER BY i;
i
--------
-$2.00
-$1.00
$0.00
(3 rows)
SELECT * FROM test_money WHERE i<='1'::money ORDER BY i;
i
--------
-$2.00
-$1.00
$0.00
$1.00
(4 rows)
SELECT * FROM test_money WHERE i='1'::money ORDER BY i;
i
-------
$1.00
(1 row)
SELECT * FROM test_money WHERE i>='1'::money ORDER BY i;
i
-------
$1.00
$2.00
$3.00
(3 rows)
SELECT * FROM test_money WHERE i>'1'::money ORDER BY i;
i
-------
$2.00
$3.00
(2 rows)
EXPLAIN (costs off)
SELECT *, i <=> 0::money FROM test_money ORDER BY i <=> 0::money;
QUERY PLAN
------------------------------------------
Index Scan using idx_money on test_money
Order By: (i <=> (0)::money)
(2 rows)
SELECT *, i <=> 0::money FROM test_money ORDER BY i <=> 0::money;
i | ?column?
--------+----------
$0.00 | 0
-$1.00 | 100
$1.00 | 100
-$2.00 | 200
$2.00 | 200
$3.00 | 300
(6 rows)
EXPLAIN (costs off)
SELECT *, i <=> 1::money FROM test_money WHERE i<1::money ORDER BY i <=> 1::money;
QUERY PLAN
------------------------------------------
Index Scan using idx_money on test_money
Index Cond: (i < (1)::money)
Order By: (i <=> (1)::money)
(3 rows)
SELECT *, i <=> 1::money FROM test_money WHERE i<1::money ORDER BY i <=> 1::money;
i | ?column?
--------+----------
$0.00 | 100
-$1.00 | 200
-$2.00 | 300
(3 rows)
|