Bruce Momjian wrote:
>
> > The results are profound. Queries that used to scan tables because of the
>
> How about if instead of doing:
>
> select * from tab1 where val = 3
> union
> select * from tab1 where val = 4
> ...
>
> you change it to:
>
> select * from tab1 where val in (
> select 3
> union
> select 4
> )
>
the explosion happens for ORs of multiple ANDs that get rewritten to:
select * from tabl wehere val1=1 and val2=1 and val3=1
union
select * from tabl wehere val1=1 and val2=1 and val3=2
union
...
And there is no way of doing (at least presently):
select * from table where (val1,val2,val3) in (select 1,1,1 union select
1,1,2);
Hannu