Michael Fuhr wrote:
On Thu, Jul 12, 2007 at 09:50:42AM +0100, Heikki Linnakangas wrote:
Marcin Stępnicki wrote:
Let's say I've got a view with 100 columns and 1mln rows; some of them are
calculated "on the fly". For some reason I want only one column from
this view:
select col1 from huge_view;
Now, does PostgreSQL skip all the calculations from other columns and
executes this query faster then select * from huge_view?
In simple cases, yes. But for example, if you have a LEFT OUTER JOIN in
the view, the join is performed even if your query doesn't return any
columns from the outer relation. Also, if the calculation contains
immutable functions, it's not skipped.
Don't you mean "if the calculation contains VOLATILE functions,
it's not skipped"?
Yes, thanks for the correction.
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com
---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match