On 24 December 2015 at 13:55, Haribabu Kommi <kommi.harib...@gmail.com> wrote:
> On Wed, Dec 23, 2015 at 7:50 PM, David Rowley > <david.row...@2ndquadrant.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