"Peter Darley" <pdarley@kinesis-cem.com> writes:
> I have a question about views: I want to have a fairly wide view (lots of
> columns) where most of the columns have some heavyish calculations in them,
> but I'm concerned that it will have to calculate every column even when I'm
> not selecting them. So, the question is, if I have 5 columns in a view but
> only select 1 column, is the system smart enough to not calculate the unused
> columns,
It depends on what the rest of your view looks like. If the view is
simple enough to be "flattened" into the parent query then the unused
columns will disappear into the ether. If it's not flattenable then
they will get evaluated. You can check by seeing whether an EXPLAIN
shows a separate "subquery scan" node corresponding to the view.
(Without bothering to look at the code, an unflattenable view is one
that uses GROUP BY, DISTINCT, aggregates, ORDER BY, LIMIT, UNION,
INTERSECT, EXCEPT, probably a couple other things.)
regards, tom lane