RE: [SQL] indexing a datetime by date

Jackson, DeJuan <djackson@cpsgroup.com>

From: "Jackson, DeJuan" <djackson@cpsgroup.com>
To: Andrew Merrill <andrew@compclass.com>, Tom Lane <tgl@sss.pgh.pa.us>
Cc: Thomas Lockhart <lockhart@alumni.caltech.edu>, "Jackson, DeJuan" <djackson@cpsgroup.com>, pgsql-sql@hub.org, PGSQL Hackers <pgsql-hackers@hub.org>
Date: 1999-03-30T17:33:46Z
Lists: pgsql-hackers
try:
 explain select when from notes where datetime_date(when) = 'now'::date;
	-DEJ

> Tom Lane wrote:
> 
> > In the meantime, a workaround is to call the function using its
> > builtin name:
> >
> > play=> create table notes (when datetime);
> > CREATE
> > play=> create index when_ndx3 on notes (datetime_date(when) 
> date_ops);
> > CREATE
> 
> Thanks, that helps - I can now index a datetime field by 
> date.But the index
> doesn't appear to be used:
> 
> db=> create index ndx3 on notes (datetime_date(when) date_ops);
> CREATE
> db=> vacuum analyze notes;
> VACUUM
> db=> explain select when from notes where when::date = 'now'::date;
> NOTICE:  QUERY PLAN:
> 
> Seq Scan on notes  (cost=4330.37 size=43839 width=8)
> 
> EXPLAIN
> 
> So it appears that the optimizer doesn't like this index.  
> (This is with
> version 6.4.2.)
> The table has about 90,000 rows, of which between 10 and 100 
> might match a
> given date, so an index would really help.
> 
> Am I missing something simple here?  Thanks again for all your help.
> 
> Andrew Merrill
>