Index called with Union but not with OR clause

From: "V Chitra" <vchitra(at)techbooks(dot)com>
To: <pgsql-admin(at)postgresql(dot)org>
Subject: Index called with Union but not with OR clause
Date: 2004-02-20 06:56:22
Message-ID: 008401c3f77e$a78f1d20$18dda8c0@VICHITRA
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin pgsql-performance

Hi All,

I have a select statement

select * from v_func_actual_costs
where parent_project='10478' or proj_pk = '10478'

both the fields parent_project and proj_pk have indexes based on them, but when I ran explain plan on this statement I found that none of the indexes are being called. But, if I make two separate statement and combine them with Union ALL, the indexes are being called. The select statement in this case is

select * from ct_admin.v_func_actual_costs
where parent_project='10478'
union all
select * from ct_admin.v_func_actual_costs
where proj_pk = '10478'

Can anybody help me to find a reason for the same. This is just a part of the query so I cannot use the Union ALL clause.

Thanks in advance

Chitra

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Matt Clark 2004-02-20 10:12:37 Re: "DELETE FROM" protection
Previous Message Jeremy Smith 2004-02-20 06:05:33 "DELETE FROM" protection

Browse pgsql-performance by date

  From Date Subject
Next Message vathakar 2004-02-20 09:16:15 Slow in morning hours
Previous Message Josh Berkus 2004-02-19 21:17:35 Re: Forcing filter/join order?