Re: Parallel Aggregate
От | Robert Haas |
---|---|
Тема | Re: Parallel Aggregate |
Дата | |
Msg-id | CA+TgmobuOcw8xNvc6K-x5doiOk7xy0S6fW+jW8ketVTX6SMwgQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Parallel Aggregate (David Rowley <david.rowley@2ndquadrant.com>) |
Ответы |
Re: Parallel Aggregate
|
Список | pgsql-hackers |
On Tue, Mar 15, 2016 at 6:55 PM, David Rowley <david.rowley@2ndquadrant.com> wrote: > On 16 March 2016 at 11:00, Robert Haas <robertmhaas@gmail.com> wrote: >> I don't see why we would need to leave aggpartial out of the equals() >> check. I must be missing something. > > See fix_combine_agg_expr_mutator() > > This piece of code: > > /* > * Aggrefs for partial aggregates are wrapped up in a PartialAggref, > * we need to look into the PartialAggref to find the Aggref within. > */ > foreach(lc, context->subplan_itlist->tlist) > { > PartialAggref *paggref; > tle = (TargetEntry *) lfirst(lc); > paggref = (PartialAggref *) tle->expr; > > if (IsA(paggref, PartialAggref) && > equal(paggref->aggref, aggref)) > break; > } > > if equals() compared the aggpartial then this code would fail to find > the Aggref in the subnode due to the aggpartial field being true on > one and false on the other Aggref. ...and why would one be true and the other false? -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
В списке pgsql-hackers по дате отправления: