postgresql/src/backend
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 Exclude flex-generated code from coverage testing 2017-10-16 16:28:11 -04:00
catalog Minor edits to catalog files and scripts 2017-12-21 19:07:32 -03:00
commands Fix deadlock hazard in CREATE INDEX CONCURRENTLY 2018-01-02 19:16:16 -03:00
executor Simplify representation of aggregate transition values a bit. 2018-01-02 18:23:37 -08:00
foreign Change TRUE/FALSE to true/false 2017-11-08 11:37:28 -05:00
lib Rethink MemoryContext creation to improve performance. 2017-12-13 13:55:16 -05:00
libpq Move SCRAM-related name definitions to scram-common.h 2017-12-18 16:59:48 -05:00
main Install Windows crash dump handler before all else. 2017-11-12 14:31:00 -08:00
nodes Rearrange execution of PARAM_EXTERN Params for plpgsql's benefit. 2017-12-21 12:57:45 -05:00
optimizer Fix UNION/INTERSECT/EXCEPT over no columns. 2017-12-22 12:08:06 -05:00
parser Fix crash when using CALL on an aggregate 2017-12-13 10:37:48 -05:00
po Translation updates 2017-08-07 13:55:34 -04:00
port Add some const decorations to prototypes 2017-11-10 13:38:57 -05:00
postmaster Add parallel-aware hash joins. 2017-12-21 00:43:41 -08:00
regex Mop-up for commit 85feb77aa0. 2017-09-22 11:35:12 -04:00
replication Properly set base backup backends to active in pg_stat_activity 2017-12-29 16:28:32 +01:00
rewrite Fix creation of resjunk tlist entries for inherited mixed UPDATE/DELETE. 2017-11-27 17:54:07 -05:00
snowball Add some const decorations to prototypes 2017-11-10 13:38:57 -05:00
statistics Support boolean columns in functional-dependency statistics. 2017-12-04 11:51:43 -05:00
storage Fix race-under-concurrency in PathNameCreateTemporaryDir. 2017-12-27 10:56:14 -08:00
tcop Rearrange execution of PARAM_EXTERN Params for plpgsql's benefit. 2017-12-21 12:57:45 -05:00
tsearch Update typedefs.list and re-run pgindent 2017-11-29 09:24:24 -05:00
utils Protect against hypothetical memory leaks in RelationGetPartitionKey 2017-12-27 18:06:14 -03:00
.gitignore Add .gitignore entries for AIX-specific intermediate build artifacts. 2015-07-08 20:44:22 -04:00
Makefile Inject $(ICU_LIBS) regardless of platform. 2017-08-20 21:22:18 -07:00
common.mk Add ICU_CFLAGS to global CPPFLAGS 2017-06-12 15:57:22 -04:00
nls.mk Translation updates 2017-05-15 12:19:54 -04:00