Create syscache entries for pg_extension
authorMichael Paquier <michael@paquier.xyz>
Thu, 22 Aug 2024 01:48:25 +0000 (10:48 +0900)
committerMichael Paquier <michael@paquier.xyz>
Thu, 22 Aug 2024 01:48:25 +0000 (10:48 +0900)
commit490f869d92e5db38731b85b9be3cffdc65461808
tree5db579fea54c1b55f8a590b732c5ca4dac73a91d
parenta8395677840c37f6988d7d6420d551d0b744e6bd
Create syscache entries for pg_extension

Two syscache identifiers are added for extension names and OIDs.

Shared libraries of extensions might want to invalidate or update their
own caches whenever a CREATE, ALTER or DROP EXTENSION command is run for
their extension (in any backend).  Right now this is non-trivial to do
correctly and efficiently, but, if an extension catalog is part of a
syscache, this could simply be done by registering an callback using
CacheRegisterSyscacheCallback for the relevant syscache.

Another case where this is useful is a loaded library where some of its
code paths rely on some objects of the extension to exist; it can be
simpler and more efficient to do an existence check directly on the
extension through the syscache.

Author: Jelte Fennema-Nio
Reviewed-by: Alexander Korotkov, Pavel Stehule
Discussion: https://postgr.es/m/CAGECzQTWm9sex719Hptbq4j56hBGUti7J9OWjeMobQ1ccRok9w@mail.gmail.com
src/include/catalog/pg_extension.h