On Sep 1, 2010, at 10:30 AM, Tom Lane wrote:
> Hm, actually the whole para needs work. It was designed at a time when
> DISTINCT automatically discarded nulls, which isn't true anymore, and
> that fact was patched-in in a very awkward way too. Perhaps something
> like
>
> The first form of aggregate expression invokes the aggregate
> once for each input row.
> The second form is the same as the first, since
> <literal>ALL</literal> is the default.
> The third form invokes the aggregate once for each distinct value,
> or set of values, of the expression(s) found in the input rows.
> The last form invokes the aggregate once for each input row; since no
> particular input value is specified, it is generally only useful
> for the <function>count(*)</function> aggregate function.
>
> Most aggregate functions ignore null inputs, so that rows in which
> one or more of the expression(s) yield null are discarded. (This
> can be assumed to be true, unless otherwise specified, for all
> built-in aggregates.)
I don't think you need the parentheses, though without them, "This" might be better written as "The ignoring of NULLs".
Just my $0.02.
Best,
David