postgresql/src/include
Andres Freund f9ccf92e16 Simplify representation of aggregate transition values a bit.
Previously aggregate transition values for hash and other forms of
aggregation (i.e. sort and no group by) were represented
differently. Hash based aggregation used a grouping set indexed array
pointing to an array of transition values, whereas other forms of
aggregation used one flattened array with the index being computed out
of grouping set and transition offsets.

That made upcoming changes hard, so represent both as grouping set
indexed array of per-group data.

As a nice side-effect this also makes aggregation slightly faster,
because computing offsets with `transno + (setno * numTrans)` turns
out not to be that cheap (too big for x86 lea for example).

Author: Andres Freund
Discussion: https://postgr.es/m/20171128003121.nmxbm2ounxzb6n2t@alap3.anarazel.de
2018-01-02 18:23:37 -08:00
..
access Don't cast between GinNullCategory and bool 2018-01-02 12:20:56 -05:00
bootstrap Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
catalog Add polygon opclass for SP-GiST 2017-12-25 18:59:38 +03:00
commands Mark assorted variables PGDLLIMPORT. 2017-12-05 09:23:57 -05:00
common Move SCRAM-related name definitions to scram-common.h 2017-12-18 16:59:48 -05:00
datatype Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
executor Ensure proper alignment of tuples in HashMemoryChunkData buffers. 2018-01-02 21:23:06 -05:00
fe_utils Update typedefs.list and re-run pgindent 2017-11-29 09:24:24 -05:00
foreign Basic partition-wise join functionality. 2017-10-06 11:11:10 -04:00
lib Update typedefs.list and re-run pgindent 2017-11-29 09:24:24 -05:00
libpq Move SCRAM-related name definitions to scram-common.h 2017-12-18 16:59:48 -05:00
mb Add more efficient functions to pqformat API. 2017-10-11 16:01:52 -07:00
nodes Simplify representation of aggregate transition values a bit. 2018-01-02 18:23:37 -08:00
optimizer Add parallel-aware hash joins. 2017-12-21 00:43:41 -08:00
parser SQL procedures 2017-11-30 11:03:20 -05:00
port Clean up warnings in MinGW builds. 2017-11-16 17:57:38 -05:00
portability Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
postmaster Mark assorted variables PGDLLIMPORT. 2017-12-05 09:23:57 -05:00
regex Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
replication Generational memory allocator 2017-11-23 05:45:07 +11:00
rewrite Fix creation of resjunk tlist entries for inherited mixed UPDATE/DELETE. 2017-11-27 17:54:07 -05:00
snowball Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
statistics Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
storage Add parallel-aware hash joins. 2017-12-21 00:43:41 -08:00
tcop Mark assorted variables PGDLLIMPORT. 2017-12-05 09:23:57 -05:00
tsearch Change TRUE/FALSE to true/false 2017-11-08 11:37:28 -05:00
utils Add includes to make header files self-contained 2017-12-26 10:21:27 -05:00
.gitignore Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
Makefile Add statistics subdirectory to Makefile. 2017-06-08 11:29:50 -04:00
c.h Add support for static assertions in C++ 2017-12-26 10:45:07 -05:00
fmgr.h Allow the built-in ordered-set aggregates to share transition state. 2017-10-16 15:51:23 -04:00
funcapi.h Support domains over composite types. 2017-10-26 13:47:45 -04:00
getaddrinfo.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
getopt_long.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
miscadmin.h Mark assorted variables PGDLLIMPORT. 2017-12-05 09:23:57 -05:00
pg_config.h.in Provide overflow safe integer math inline functions. 2017-12-12 16:55:37 -08:00
pg_config.h.win32 Provide overflow safe integer math inline functions. 2017-12-12 16:55:37 -08:00
pg_config_ext.h.in Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
pg_config_ext.h.win32 Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
pg_config_manual.h Restrict lo_import()/lo_export() via SQL permissions not hard-wired checks. 2017-11-09 12:36:58 -05:00
pg_getopt.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
pg_trace.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
pgstat.h Add parallel-aware hash joins. 2017-12-21 00:43:41 -08:00
pgtar.h Phase 3 of pgindent updates. 2017-06-21 15:35:54 -04:00
pgtime.h Mark assorted variables PGDLLIMPORT. 2017-12-05 09:23:57 -05:00
port.h Further refactoring of c.h and nearby files. 2017-11-16 10:36:21 -05:00
postgres.h Phase 3 of pgindent updates. 2017-06-21 15:35:54 -04:00
postgres_ext.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
postgres_fe.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
rusagestub.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
windowapi.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00