Re: array_agg() NULL Handling

From: "David E(dot) Wheeler" <david(at)kineticode(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: array_agg() NULL Handling
Date: 2010-09-01 18:06:51
Message-ID: 15DE4E41-24DD-4ABC-9FFE-620F6BD9E4B4@kineticode.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Pavel Stehule 2010-09-01 18:09:48 Re: array_agg() NULL Handling
Previous Message David E. Wheeler 2010-09-01 17:59:42 Re: array_agg() NULL Handling