Re: Memory-Bounded Hash Aggregation
От | Justin Pryzby |
---|---|
Тема | Re: Memory-Bounded Hash Aggregation |
Дата | |
Msg-id | 20200319064222.GR26184@telsasoft.com обсуждение исходный текст |
Ответ на | Re: Memory-Bounded Hash Aggregation (Jeff Davis <pgsql@j-davis.com>) |
Список | pgsql-hackers |
On Sun, Mar 15, 2020 at 04:05:37PM -0700, Jeff Davis wrote: > > + if (from_tape) > > + partition_mem += HASHAGG_READ_BUFFER_SIZE; > > + partition_mem = npartitions * HASHAGG_WRITE_BUFFER_SIZE; > > > > => That looks wrong ; should say += ? > > Good catch! Fixed. > +++ b/src/backend/executor/nodeAgg.c > @@ -2518,9 +3499,36 @@ ExecInitAgg(Agg *node, EState *estate, int eflags) > */ > if (use_hashing) > { > + Plan *outerplan = outerPlan(node); > + uint64 totalGroups = 0; > + for (i = 0; i < aggstate->num_hashes; i++) > + totalGroups = aggstate->perhash[i].aggnode->numGroups; > + > + hash_agg_set_limits(aggstate->hashentrysize, totalGroups, 0, I realize that I missed the train but .. that looks like another += issue? Also, Andres was educating me about the range of behavior of "long" type, and I see now while rebasing that you did the same thing. https://www.postgresql.org/message-id/20200306175859.d56ohskarwldyrrw%40alap3.anarazel.de -- Justin
В списке pgsql-hackers по дате отправления: