On Wed, Jan 20, 2016 at 11:06 AM, Robert Haas <robertmhaas@gmail.com> wrote:
> On Wed, Jan 20, 2016 at 7:38 AM, David Rowley
> <david.rowley@2ndquadrant.com> wrote:
>> Agreed. So I've attached a version of the patch which does not have any of
>> the serialise/deserialise stuff in it.
>
> I re-reviewed this and have committed most of it with only minor
> kibitizing. A few notes:
This commit has broken pg_dump. At least, I think this is the thread
referencing this commit:
commit a7de3dc5c346e07e0439275982569996e645b3c2
Author: Robert Haas <rhaas@postgresql.org>
Date: Wed Jan 20 13:46:50 2016 -0500 Support multi-stage aggregation.
If I add an aggregate to an otherwise empty 9.4.5 database:
CREATE OR REPLACE FUNCTION first_agg ( anyelement, anyelement )
RETURNS anyelement LANGUAGE sql IMMUTABLE STRICT AS $$ SELECT $1;
$$;
-- And then wrap an aggregate around it
-- aggregates do not support create or replace, alas.
CREATE AGGREGATE first ( sfunc = first_agg, basetype = anyelement, stype = anyelement
);
And then run pg_dump from 9.6.this on it, I get:
pg_dump: column number -1 is out of range 0..17
Segmentation fault (core dumped)
Program terminated with signal 11, Segmentation fault.
#0 0x0000000000416b0b in dumpAgg (fout=0x1e551e0, agginfo=0x1e65ec0)
at pg_dump.c:12670
12670 if (strcmp(aggcombinefn, "-") != 0)
(gdb) bt
#0 0x0000000000416b0b in dumpAgg (fout=0x1e551e0, agginfo=0x1e65ec0)
at pg_dump.c:12670
#1 0x000000000041df7a in main (argc=<value optimized out>,
argv=<value optimized out>) at pg_dump.c:810
Cheers,
Jeff