Re: Wrong aggregate result when sorting by a NULL value

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Ondřej Bouda <obouda@email.cz>, pgsql-bugs@postgresql.org
Date: 2018-11-02T15:40:50Z
Lists: pgsql-bugs
Hi,

On 2018-11-02 11:34:46 -0400, Tom Lane wrote:
> I wrote:
> > =?UTF-8?Q?Ond=c5=99ej_Bouda?= <obouda@email.cz> writes:
> >> the following seems as a bug to me on Postgres 11.0:
> 
> > Yeah, somebody broke this between 10.x and 11.0. ...
> > I've not looked at the code yet, but it's acting like somebody changed the
> > STRICT logic from "are any of the aggregate's arguments null" to "is any
> > part of the whole row (including ordering values) null".  Wrong ...
> 
> git bisect fingers this:
> 
> commit 69c3936a1499b772a749ae629fc59b2d72722332
> Author: Andres Freund <andres@anarazel.de>
> Date:   Tue Jan 9 13:25:38 2018 -0800
> 
>     Expression evaluation based aggregate transition invocation.
> 
> Andres, do you have time to look at this right now?

Thanks for bisecting.  I'll take a look later today.

Greetings,

Andres Freund


Commits

  1. Fix unused-variable warning.

  2. Prevent generating EEOP_AGG_STRICT_INPUT_CHECK operations when nargs == 0.

  3. Fix STRICT check for strict aggregates with NULL ORDER BY columns.

  4. Expression evaluation based aggregate transition invocation.