pgsql: User narrower representative tuples in the hash-agg hashtable.

Поиск
Список
Период
Сортировка
От Andres Freund
Тема pgsql: User narrower representative tuples in the hash-agg hashtable.
Дата
Msg-id E1cCGVh-0008WC-Fr@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
User narrower representative tuples in the hash-agg hashtable.

So far the hashtable stored representative tuples in the form of its
input slot, with all columns in the hashtable that are not
needed (i.e. not grouped upon or functionally dependent) set to NULL.

Thats good for saving memory, but it turns out that having tuples full
of NULL isn't free. slot_deform_tuple is faster if there's no NULL
bitmap even if no NULLs are encountered, and skipping over leading NULLs
isn't free.

So compute a separate tuple descriptor that only contains the needed
columns. As columns have already been moved in/out the slot for the
hashtable that does not imply additional per-row overhead.

Author: Andres Freund
Reviewed-By: Heikki Linnakangas
Discussion: https://postgr.es/m/20161103110721.h5i5t5saxfk5eeik@alap3.anarazel.de

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/fc4b3dea2950e4f6081f1ed2380f82c9efd672e0

Modified Files
--------------
src/backend/executor/nodeAgg.c | 164 +++++++++++++++++++++++++++--------------
src/include/nodes/execnodes.h  |   5 +-
2 files changed, 112 insertions(+), 57 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Andres Freund
Дата:
Сообщение: pgsql: Perform one only projection to compute agg arguments.
Следующее
От: Michael Meskes
Дата:
Сообщение: pgsql: Added missing "EXEC SQL" to statement.