pgsql: Refactor typcache.c's record typmod hash table.

Started by Andres Freundalmost 9 years ago1 messagescomitters
Jump to latest
#1Andres Freund
andres@anarazel.de

Refactor typcache.c's record typmod hash table.

Previously, tuple descriptors were stored in chains keyed by a fixed size
array of OIDs. That meant there were effectively two levels of collision
chain -- one inside and one outside the hash table. Instead, let dynahash.c
look after conflicts for us by supplying a proper hash and equal function
pair.

This is a nice cleanup on its own, but also simplifies followup
changes allowing blessed TupleDescs to be shared between backends
participating in parallel query.

Author: Thomas Munro
Reviewed-By: Andres Freund
Discussion: /messages/by-id/CAEepm=34GVhOL+arUx56yx7OPk7=qpGsv3CpO54feqjAwQKm5g@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/35ea75632a56ca8ef22aa8fed03b9dabb9c8c575

Modified Files
--------------
src/backend/access/common/tupdesc.c | 27 ++++++++++++++
src/backend/utils/cache/typcache.c | 74 ++++++++++++++++++-------------------
src/include/access/tupdesc.h | 2 +
3 files changed, 65 insertions(+), 38 deletions(-)

--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers