-- char check
CREATE TABLE chartmp (a char(32));
\copy chartmp from 'data/char.data'
SET enable_seqscan=on;
SELECT count(*) FROM chartmp WHERE a <   '31b0'::char(32);
 count 
-------
   773
(1 row)

SELECT count(*) FROM chartmp WHERE a <=  '31b0'::char(32);
 count 
-------
   774
(1 row)

SELECT count(*) FROM chartmp WHERE a  =  '31b0'::char(32);
 count 
-------
     1
(1 row)

SELECT count(*) FROM chartmp WHERE a >=  '31b0'::char(32);
 count 
-------
   215
(1 row)

SELECT count(*) FROM chartmp WHERE a >   '31b0'::char(32);
 count 
-------
   214
(1 row)

CREATE INDEX charidx ON chartmp USING GIST ( a );
SET enable_seqscan=off;
SELECT count(*) FROM chartmp WHERE a <   '31b0'::char(32);
 count 
-------
   773
(1 row)

SELECT count(*) FROM chartmp WHERE a <=  '31b0'::char(32);
 count 
-------
   774
(1 row)

SELECT count(*) FROM chartmp WHERE a  =  '31b0'::char(32);
 count 
-------
     1
(1 row)

SELECT count(*) FROM chartmp WHERE a >=  '31b0'::char(32);
 count 
-------
   215
(1 row)

SELECT count(*) FROM chartmp WHERE a >   '31b0'::char(32);
 count 
-------
   214
(1 row)

-- Test index-only scans
SET enable_bitmapscan=off;
EXPLAIN (COSTS OFF)
SELECT * FROM chartmp WHERE a BETWEEN '31a' AND '31c';
                          QUERY PLAN                           
---------------------------------------------------------------
 Index Only Scan using charidx on chartmp
   Index Cond: ((a >= '31a'::bpchar) AND (a <= '31c'::bpchar))
(2 rows)

SELECT * FROM chartmp WHERE a BETWEEN '31a' AND '31c';
  a   
------
 31b0
(1 row)