Обсуждение: pgsql: Move estimate_hashagg_tablesize to selfuncs.c,and widen result

Поиск
Список
Период
Сортировка

pgsql: Move estimate_hashagg_tablesize to selfuncs.c,and widen result

От
Tom Lane
Дата:
Move estimate_hashagg_tablesize to selfuncs.c, and widen result to double.

It seems to make more sense for this to be in selfuncs.c, since it's
largely a statistical-estimation thing, and it's related to other
functions like estimate_hash_bucket_stats that are there.

While at it, change the result type from Size to double.  Perhaps at one
point it was impossible for the result to overflow an integer, but
I've got no confidence in that proposition anymore.  Nothing's actually
done with the result except to compare it to a work_mem-based limit,
so as long as we don't get an overflow on the way to that comparison,
things should be fine even with very large dNumGroups.

Code movement proposed by Antonin Houska, type change by me

Discussion: https://postgr.es/m/25767.1549359615@localhost

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/0c7d53793079a1af3f070d93e3eb86a52720f6e7

Modified Files
--------------
src/backend/optimizer/plan/planner.c | 51 +++++-------------------------------
src/backend/utils/adt/selfuncs.c     | 38 +++++++++++++++++++++++++++
src/include/utils/selfuncs.h         |  3 +++
3 files changed, 48 insertions(+), 44 deletions(-)