"Dave Page" <dpage@vale-housing.co.uk> writes:
> CREATE INDEX pbx_log_today_idx ON pbx_log USING btree (pbx_time,
> pbx_call_type, pbx_digits_source, pbx_digits_destination) WHERE
> (pbx_date = '2003-03-06'::date);
> I'm surprised by the following behaviour:
> EXPLAIN SELECT * FROM pbx_log WHERE pbx_date = CURRENT_DATE;
> [ no indexscan ]
> Is this just an oddity because I don't have masses of data yet (4500
> rows right now), or is this something the optimizer cannot handle?
The optimizer does not think that "pbx_date = CURRENT_DATE" satisfies the
partial index's WHERE condition. I don't see any really good way around
this; to improve matters there'd need to be some concept of a plan that
is only good for a limited time.
regards, tom lane