This repository was archived by the owner on Feb 20, 2023. It is now read-only.

Description
As encountered in #1097, TPL code linked there, parallel aggregations will return the wrong results, e.g.,
terrier=# create table fooc (a int, b int, c int);
CREATE TABLE
terrier=# insert into fooc values (1,2,3);
INSERT 0 1
terrier=# select sum(a), sum(b), sum(c) from fooc;
?column? | ?column? | ?column?
----------+----------+----------
6 | 6 | 6
(1 row)
With error messages:
[2020-08-19 11:08:18.664] [execution_logger] [error] ERROR IN MODULE:
Stored value type does not match pointer operand type!
store %1* %16, %"class.terrier::execution::sql::IntegerSumAggregate"** %5
%"class.terrier::execution::sql::IntegerSumAggregate"*Stored value type does not match pointer operand type!
store %1* %22, %"class.terrier::execution::sql::IntegerSumAggregate"** %8
%"class.terrier::execution::sql::IntegerSumAggregate"*Stored value type does not match pointer operand type!
store %1* %5, %"class.terrier::execution::sql::IntegerSumAggregate"** %2
%"class.terrier::execution::sql::IntegerSumAggregate"*Stored value type does not match pointer operand type!
store %1* %7, %"class.terrier::execution::sql::IntegerSumAggregate"** %3
%"class.terrier::execution::sql::IntegerSumAggregate"*Stored value type does not match pointer operand type!
store %1* %30, %"class.terrier::execution::sql::IntegerSumAggregate"** %10
%"class.terrier::execution::sql::IntegerSumAggregate"*Stored value type does not match pointer operand type!
store %1* %34, %"class.terrier::execution::sql::IntegerSumAggregate"** %12
%"class.terrier::execution::sql::IntegerSumAggregate"*
For now, static aggregations are being set to SERIAL in #1097.