HI,
On Nov 7, 2022, 04:12 +0800, Tom Lane , wrote:
>
> The NIL lists are of course occupying no storage. The two one-element
> lists are absolutely, completely negligible in the context of planning
> any nontrivial statement. Even the aggtransinfos list that is the
> primary output of preprocess_
Zhang Mingli writes:
> Correction: SaveBytes = Sum results of accumulate_list_size: 24(4+4+8+8),
What I did was to stick in
elog(LOG, "leaking list of length %d",
list_length(same_input_transnos));
at the end of preprocess_aggref. What I see on your five-aggregate
example is
2022-11-
Regards,
Zhang Mingli
On Sep 20, 2022, 00:27 +0800, Zhang Mingli , wrote:
>
> SaveBytes = Sum results of accumulate_list_size: 32(4+4+8+8), as we have 5
> aggs in sql
Correction: SaveBytes = Sum results of accumulate_list_size: 24(4+4+8+8),
Regards,
Zhang Mingli
On Sep 19, 2022, 23:14 +0800, Tom Lane , wrote:
> Very little of the planner bothers with freeing small allocations
> like that.
I think so too, as said, not sure if it worths.
> Can you demonstrate a case where this would actually
> make a meaningful difference?
Offhand, an
Zhang Mingli writes:
> In preprocess_aggref(), list same_input_transnos is used to track compatible
> transnos.
> Free it if we don’t need it anymore.
Very little of the planner bothers with freeing small allocations
like that. Can you demonstrate a case where this would actually
make a meaning
Hi,
In preprocess_aggref(), list same_input_transnos is used to track compatible
transnos.
Free it if we don’t need it anymore.
```
/*
* 2. See if this aggregate can share transition state with another
* aggregate that we've initialized already.
*/
transno = find_compatible_trans(root, ag