The following bug has been logged on the website:
Bug reference: 14532
Logged by: Zhou Digoal
Email address: digoal@126.com
PostgreSQL version: 9.6.1
Operating system: CentOS 6.x x64
Description:
```
postgres=# create table tbl(id int, t timestamp);
CREATE TABLE
postgres=# insert into tbl select 1,now() from generate_series(1,10000);
INSERT 0 10000
postgres=# create index idx_tbl_1 on tbl using gin (id,t);
CREATE INDEX
postgres=# explain select * from tbl where t>current_date;
QUERY PLAN
----------------------------------------------------------
Seq Scan on tbl (cost=0.00..230.00 rows=10000 width=12)
Filter: (t > ('now'::cstring)::date)
(2 rows)
postgres=# set enable_seqscan=off;
SET
postgres=# explain select * from tbl where t>current_date;
QUERY PLAN
----------------------------------------------------------------------------
Seq Scan on tbl (cost=10000000000.00..10000000230.00 rows=10000
width=12)
Filter: (t > ('now'::cstring)::date)
(2 rows)
postgres=# create index idx_tbl_2 on tbl using btree(t);
CREATE INDEX
postgres=# explain select * from tbl where t>current_date;
QUERY PLAN
----------------------------------------------------------------------------
Index Scan using idx_tbl_2 on tbl (cost=0.29..269.59 rows=10000
width=12)
Index Cond: (t > ('now'::cstring)::date)
(2 rows)
postgres=# drop index idx_tbl_2;
DROP INDEX
postgres=# set enable_seqscan=on;
SET
postgres=# explain select * from tbl where t>(current_date)::timestamp;
QUERY PLAN
-----------------------------------------------------------------------
Seq Scan on tbl (cost=0.00..255.00 rows=10000 width=12)
Filter: (t > (('now'::cstring)::date)::timestamp without time zone)
(2 rows)
postgres=# set enable_seqscan=off;
SET
postgres=# explain select * from tbl where t>(current_date)::timestamp;
QUERY PLAN
---------------------------------------------------------------------------------
Bitmap Heap Scan on tbl (cost=93.11..348.11 rows=10000 width=12)
Recheck Cond: (t > (('now'::cstring)::date)::timestamp without time
zone)
-> Bitmap Index Scan on idx_tbl_1 (cost=0.00..90.61 rows=10000
width=0)
Index Cond: (t > (('now'::cstring)::date)::timestamp without time
zone)
(4 rows)
```
--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs