Re: Use BumpContext contexts for TupleHashTables' tablecxt
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: David Rowley <dgrowleyml@gmail.com>
Cc: pgsql-hackers@lists.postgresql.org, Jeff Janes <jeff.janes@gmail.com>
Date: 2025-10-26T22:11:26Z
Lists: pgsql-hackers
David Rowley <dgrowleyml@gmail.com> writes: > I can't help wonder if we can improve the memory context parameter > names in BuildTupleHashTable(). Every time I see "tablecxt" I have to > remind myself that it's not for the bucket array, just the stuff we > have the buckets point to. Would "hashedtuplecxt" be better? I agree these names are not great. I think they might be leftovers from a time when there actually was a complete hash-table structure in that context. Related to this, while I was chasing Jeff's complaint I realized that the none-too-small simplehash table for this is getting made in the query's ExecutorState. That's pretty awful from the standpoint of being able to blame memory consumption on the hash node. I'm not sure though if we want to go so far as to make another context just for the simplehash table. We could keep it in that same "tablectx" at the price of destroying and rebuilding the simplehash table, not just resetting it, at each node rescan. But that's not ideal either. regards, tom lane
Commits
-
Use BumpContext contexts in TupleHashTables, and do some code cleanup.
- c106ef08071a 19 (unreleased) landed
-
HashAgg: use Bump allocator for hash TupleHashTable entries.
- cc721c459d37 18.0 cited