On 2017-11-21 15:51:59 -0500, Robert Haas wrote:
> On Mon, Nov 20, 2017 at 10:36 PM, Andres Freund <and...@anarazel.de> wrote:
> > The plain transition case contains:
> >                 if (pergroupstate->transValueIsNull)
> >                 {
> >                         /*
> >                          * Don't call a strict function with NULL inputs.  
> > Note it is
> >                          * possible to get here despite the above tests, if 
> > the transfn is
> >                          * strict *and* returned a NULL on a prior cycle. 
> > If that happens
> >                          * we will propagate the NULL all the way to the 
> > end.
> >                          */
> >                         return;
> >                 }
> >
> > how come similar logic is not present for combine functions? I don't see
> > any checks preventing a combinefunc from returning NULL, nor do I see
> > https://www.postgresql.org/docs/devel/static/sql-createaggregate.html
> > spell out a requirement that that not be the case.
> 
> I don't know of a reason why that logic shouldn't be present for the
> combine-function case as well.  It seems like it should be pretty
> straightforward to write a test that hits that case and watch it blow
> up ... assuming it does, then I guess we should back-patch the
> addition of that logic.

Found it surprisingly not that straightforward ;)

Pushed a fix to the relevant branches, including tests of the
trans/combine functions returns NULL cases.

Greetings,

Andres Freund

Reply via email to