postgresql/src/include/nodes
Andres Freund fc4b3dea29 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
2016-11-30 17:30:09 -08:00
..
bitmapset.h Update copyright for 2016 2016-01-02 13:33:40 -05:00
execnodes.h User narrower representative tuples in the hash-agg hashtable. 2016-11-30 17:30:09 -08:00
extensible.h pgindent run for 9.6 2016-06-09 18:02:36 -04:00
lockoptions.h Update copyright for 2016 2016-01-02 13:33:40 -05:00
makefuncs.h Add location field to DefElem 2016-09-06 12:00:00 -04:00
memnodes.h Update copyright for 2016 2016-01-02 13:33:40 -05:00
nodeFuncs.h Refactor to reduce code duplication for function property checking. 2016-06-10 16:03:46 -04:00
nodes.h Implement syntax for transition tables in AFTER triggers. 2016-11-04 10:49:50 -05:00
params.h pgindent run for 9.6 2016-06-09 18:02:36 -04:00
parsenodes.h Cleanup of rewriter and planner handling of Query.hasRowSecurity flag. 2016-11-10 16:16:33 -05:00
pg_list.h Directly modify foreign tables. 2016-03-18 13:55:52 -04:00
plannodes.h Update comments to reflect code rearrangement. 2016-08-31 12:36:18 +05:30
primnodes.h Improve parsetree representation of special functions such as CURRENT_DATE. 2016-08-16 20:33:01 -04:00
print.h Update copyright for 2016 2016-01-02 13:33:40 -05:00
readfuncs.h Update copyright for 2016 2016-01-02 13:33:40 -05:00
relation.h Improve code comment for GatherPath's single_copy flag. 2016-09-14 15:43:26 -04:00
replnodes.h Update copyright for 2016 2016-01-02 13:33:40 -05:00
tidbitmap.h Update copyright for 2016 2016-01-02 13:33:40 -05:00
value.h Update copyright for 2016 2016-01-02 13:33:40 -05:00