Re: [INTERFACES] Re: [HACKERS] changes in 6.4

Bruce Momjian <maillist@candle.pha.pa.us>

From: Bruce Momjian <maillist@candle.pha.pa.us>
To: maillist@candle.pha.pa.us (Bruce Momjian)
Cc: daveh@insightdist.com, hannu@trust.ee, pgsql-interfaces@postgreSQL.org, hackers@postgreSQL.org
Date: 1998-07-16T01:22:33Z
Lists: pgsql-hackers
> > The results are profound.    Queries that used to scan tables because of the
> OK, I have an idea.  Just today, we allow:
> 
> 	select *
> 	from tab1
> 	where val in (
> 		select x from tab2
> 		union
> 		select y from tab3
> 	)
> 
> 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
> 	)

OK, I just ran some test, and it does not look good:

---------------------------------------------------------------------------

son_db=> explain select mmatter from matter where mmatter =  'A01-001';
NOTICE:  QUERY PLAN:

Index Scan using i_matt2 on matter  (cost=2.05 size=1 width=12)

EXPLAIN

son_db=> explain select mmatter from matter where mmatter in (select 'A01-001');
NOTICE:  QUERY PLAN:

Seq Scan on matter  (cost=512.20 size=1001 width=12)
  SubPlan
    ->  Result  (cost=0.00 size=0 width=0)

EXPLAIN

---------------------------------------------------------------------------

Turns out indexes are not used in outer queries of subselects.  Not sure
why.  Vadim?



-- 
Bruce Momjian                          |  830 Blythe Avenue
maillist@candle.pha.pa.us              |  Drexel Hill, Pennsylvania 19026
  +  If your life is a hard drive,     |  (610) 353-9879(w)
  +  Christ can be your backup.        |  (610) 853-3000(h)