Re: Reduce TupleHashEntryData struct size by half

Peter Smith <smithpb2250@gmail.com>

From: Peter Smith <smithpb2250@gmail.com>
To: Jeff Davis <pgsql@j-davis.com>
Cc: David Rowley <dgrowleyml@gmail.com>, Heikki Linnakangas <hlinnaka@iki.fi>, pgsql-hackers@postgresql.org
Date: 2025-06-13T06:33:56Z
Lists: pgsql-hackers
Hi,

I was looking at this code recently and noticed the following.
Although the commit [1] removed the ->additional field, some function
comments were not updated to reflect this, so now they seemed a bit
stale.

1. BuildTupleHashTable(...) still says:
----------
...
 * additionalsize: size of data stored in ->additional
...
----------


2. Simiarly, LookupTupleHashEntry(...) still says:
----------
...
 * false if it existed already.  ->additional_data in the new entry has
 * been zeroed.
...
----------

======
[1] https://github.com/postgres/postgres/commit/626df47ad9db809dc8f93330175ab95b75914721

Kind Regards,
Peter Smith.
Fujitsu Australia



Commits

  1. Comment fixups from 626df47ad9.

  2. Remove 'additional' pointer from TupleHashEntryData.

  3. Add ExecCopySlotMinimalTupleExtra().

  4. Create accessor functions for TupleHashEntry.

  5. TupleHashTable: store additional data along with tuple.

  6. ExecInitAgg: update aggstate->numaggs and ->numtrans earlier.

  7. nodeSetOp.c: missing additionalsize for BuildTupleHashTable().

  8. Remove unused TupleHashTableData->entrysize.

  9. Add missing typedefs.list entry for AggStatePerGroupData.