I wrote:
> "David Johnston" <polobo@yahoo.com> writes:
>> So,
>> EXPLAIN SELECT function_call(...) -- yields a planner expectation of 1 row
>> [Whereas]
>> EXPLAIN SELECT * FROM function_call(...) -- yields a planner expectation of
>> "result_rows" which defaults to 1000
> Hm ...
>> Was this an intentional design decision to override the result_rows estimate
>> of the function if it is used in the select list?
> Not so much an intentional decision as just that nobody ever did
> anything about it.
I've now done something about that for 9.2. I'm loath to back-patch it
into any already-stable releases, though, for fear of destabilizing
plan choices that production applications might be relying on.
regards, tom lane