git.postgresql.org Git - postgresql.git/commit

git projects / postgresql.git / commit
? search:
summary | shortlog | log | commit | commitdiff | tree
(parent: 8ed3f11) | patch
User narrower representative tuples in the hash-agg hashtable.
Thu, 1 Dec 2016 01:30:09 +0000 (17:30 -0800)
Thu, 1 Dec 2016 01:30:09 +0000 (17:30 -0800)
commit fc4b3dea2950e4f6081f1ed2380f82c9efd672e0
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
src/backend/executor/nodeAgg.c diff | blob | blame | history
src/include/nodes/execnodes.h diff | blob | blame | history
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /