Frank van Vugt <[EMAIL PROTECTED]> 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