explaining union

Поиск
Список
Период
Сортировка
От dag@interfree.it ()
Тема explaining union
Дата
Msg-id 20021108123754.31407.qmail@community10.interfree.it
обсуждение исходный текст
Список pgsql-cygwin


I've noted a strange behaviour on where conditions,
a simple example:

create table temp1 (col1 integer, primary key (col1));
create table temp2 (col1 integer, primary key (col1));


explain
select * from (
select * from temp1
union all
select * from temp2) x
where col1 = 1;

Subquery Scan x  (cost=0.00..40.00 rows=2000 width=4)
  ->  Append  (cost=0.00..40.00 rows=2000 width=4)
        ->  Subquery Scan *SELECT* 1  (cost=0.00..20.00 rows=1000 width=4)
              ->  Seq Scan on temp1  (cost=0.00..20.00 rows=1000 width=4)
        ->  Subquery Scan *SELECT* 2  (cost=0.00..20.00 rows=1000 width=4)
              ->  Seq Scan on temp2  (cost=0.00..20.00 rows=1000 width=4)


it seems the external condition doesn't propagate on the internal subselect..

but it's only on union (or except) statements, not a subselect issue:
infact,

explain
select * from
(select * from temp1
) x
where col1 = 1;

Index Scan using temp1_pkey on temp1  (cost=0.00..4.82 rows=1 width=4)

analyzing and/or querying much larger tables makes no difference;



is there any way to improve the first plan?

TIA,
--g.






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

Salve, il messaggio che hai ricevuto
� stato inviato per mezzo del sistema
di web mail interfree. Se anche tu vuoi
una casella di posta free visita il
sito http://club.interfree.it
Ti aspettiamo!

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



В списке pgsql-cygwin по дате отправления:

Предыдущее
От: Jason Tishler
Дата:
Сообщение: Re: pg7.3b5 on cygwin 1.3.15-1 - Same error
Следующее
От: "beakerboy@www.com"
Дата:
Сообщение: Re: Postmaster will not start