pgsql: Fix array size allocation for HashAggregate hash keys.

From: Andrew Gierth <rhodiumtoad(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Fix array size allocation for HashAggregate hash keys.
Date: 2019-05-23 14:49:28
Message-ID: E1hTp28-0002eD-CH@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Fix array size allocation for HashAggregate hash keys.

When there were duplicate columns in the hash key list, the array
sizes could be miscomputed, resulting in access off the end of the
array. Adjust the computation to ensure the array is always large
enough.

(I considered whether the duplicates could be removed in planning, but
I can't rule out the possibility that duplicate columns might have
different hash functions assigned. Simpler to just make sure it works
at execution time regardless.)

Bug apparently introduced in fc4b3dea2 as part of narrowing down the
tuples stored in the hashtable. Reported by Colm McHugh of Salesforce,
though I didn't use their patch. Backpatch back to version 10 where
the bug was introduced.

Discussion: https://postgr.es/m/CAFeeJoKKu0u+A_A9R9316djW-YW3-+Gtgvy3ju655qRHR3jtdA@mail.gmail.com

Branch
------
REL_10_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/99efd8d727b0662e152daa2ccd1dcc668ac36056

Modified Files
--------------
src/backend/executor/nodeAgg.c | 29 ++++++++++++++++++++++-------
src/test/regress/expected/aggregates.out | 18 ++++++++++++++++++
src/test/regress/sql/aggregates.sql | 7 +++++++
3 files changed, 47 insertions(+), 7 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Andres Freund 2019-05-23 22:09:43 pgsql: pg_upgrade: Make test.sh's installcheck use to-be-upgraded versi
Previous Message Michael Paquier 2019-05-23 01:51:01 pgsql: Fix ordering of GRANT commands in pg_dumpall for tablespaces