Re: Combining Aggregates

From: David Rowley <david(dot)rowley(at)2ndquadrant(dot)com>
To: Haribabu Kommi <kommi(dot)haribabu(at)gmail(dot)com>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, Heikki Linnakangas <hlinnaka(at)iki(dot)fi>, Michael Paquier <michael(dot)paquier(at)gmail(dot)com>, David Rowley <dgrowleyml(at)gmail(dot)com>, Simon Riggs <simon(at)2ndquadrant(dot)com>, Kouhei Kaigai <kaigai(at)ak(dot)jp(dot)nec(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>, Amit Kapila <amit(dot)kapila(at)enterprisedb(dot)com>
Subject: Re: Combining Aggregates
Date: 2015-12-24 02:12:52
Message-ID: CAKJS1f_KvYuf=CuCMWN8Tz6t-Rr+G+z3YX5XZsj_AQdKuoA6Hw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 24 December 2015 at 13:55, Haribabu Kommi <kommi(dot)haribabu(at)gmail(dot)com>
wrote:

> On Wed, Dec 23, 2015 at 7:50 PM, David Rowley
> <david(dot)rowley(at)2ndquadrant(dot)com> wrote:
> > One other part that I'm not too sure on how to deal with is how to set
> the
> > data type for the Aggrefs when we're not performing finalization on the
> > aggregate node. The return type for the Aggref in this case will be
> either
> > the transtype, or the serialtype, depending on if we're serializing the
> > states or not. To do this, I've so far just come up with
> > set_partialagg_aggref_types() which is called during setrefs. The only
> other
> > time that I can think to do this return type update would be when
> building
> > the partial agg node's target list. I'm open to better ideas on this
> part.
>
>
> Thanks for the patch. I am not sure about the proper place of this change,
> but changing it with transtype will make all float4 and float8 aggregates
> to
> work in parallel. Most of these aggregates return type is typbyval and
> transition type is a variable length.
>
> we may need to write better combine functions for these types to avoid
> wrong
> results because of parallel.
>

I might be misunderstanding you here, but yeah, well, if by "write better"
you mean "write some", then yeah :) I only touched sum(), min() and max()
so far as I didn't need to do anything special with these. I'm not quite
sure what you mean with the "wrong results" part. Could you explain more?

--
David Rowley http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Michael Paquier 2015-12-24 02:14:09 Re: COPY FREEZE and PD_ALL_VISIBLE
Previous Message David Rowley 2015-12-24 01:56:12 Re: Combining Aggregates