In pg_dump, use simplehash.h to look up dumpable objects by OID.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 22 Oct 2021 21:19:03 +0000 (17:19 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 22 Oct 2021 21:19:03 +0000 (17:19 -0400)
commit92316a4582a5714d4e494aaf90360860e7fec37a
tree25b93245e3f475b9b59c96d248cfba6d3d64f47b
parent974aedcea46dfd0119eea2fbb2eeacd232596f05
In pg_dump, use simplehash.h to look up dumpable objects by OID.

Create a hash table that indexes dumpable objects by CatalogId
(that is, catalog OID + object OID).  Use this to replace the
former catalogIdMap array, as well as various other single-
catalog index arrays, and also the extension membership map.

In principle this should be faster for databases with many objects,
since lookups are now O(1) not O(log N).  However, it seems that these
lookups are pretty much negligible in context, so that no overall
performance change can be measured.  But having only one lookup
data structure to maintain makes the code simpler and more flexible,
so let's do it anyway.

Discussion: https://postgr.es/m/2595220.1634855245@sss.pgh.pa.us
src/bin/pg_dump/common.c
src/bin/pg_dump/pg_backup.h
src/bin/pg_dump/pg_dump.c
src/bin/pg_dump/pg_dump.h