Or selection on index versus union - Mailing list pgsql-general

From han.holl@informationslogik.nl
Subject Or selection on index versus union
Date
Msg-id 200510042132.41642.han.holl@informationslogik.nl
Whole thread Raw
Responses Re: Or selection on index versus union  (kevin.kempter@dataintellect.com)
Re: Or selection on index versus union  (Michael Fuhr <mike@fuhr.org>)
List pgsql-general
Hello

I've got a table with an index, let's call it fase.

The following query is fine: 'select something from table where fase = '1';

However, this is disastrously slow:
select something from table where fase = '1' or fase = '2';

The reason is that the query planner decides to ignore the index, and goes for
a sequential scan of the table (with a couple of million records).

If I do:
select something from table where fase = '1'
union
select something from table where fase = '2';

it's fine again, but it's a lot of typing, and the first formulation has a
more natural feel to it.

Is there a way to convince the planner to use the fase index for this type of
query, or is there a hook somewhere that I missed that allows me to rewrite
a query like the above with a server-side function ?

Thanks in advance,

Han Holl

pgsql-general by date:

Previous
From: "Stefan 'Kaishakunin' Schumacher"
Date:
Subject: Re: License question
Next
From: "Magnus Hagander"
Date:
Subject: Re: License question