View Single Post

   
  #4 (permalink)  
Old 05-07-2008, 11:18 AM
Tom Lane
 
Posts: n/a
Default Re: plan difference between set-returning function with ROWS within IN() and a plain join

Frank van Vugt <ftm.van.vugt@foxi.nl> writes:
> db=# explain analyse
> select sum(base_total_val)
> from sales_invoice
> where id in (select id from si_credit_tree(80500007));


Did you check whether this query even gives the right answer? The
EXPLAIN output shows that 21703 rows of sales_invoice are being
selected, which is a whole lot different than the other behavior.

I think you forgot the alias foo(id) in the subselect and it's
actually reducing to "where id in (id)", ie, TRUE.

regards, tom lane

--
Sent via pgsql-performance mailing list (pgsql-performance@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance

Reply With Quote