Skip to content

Commit 490f869

Browse files
committed
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
1 parent a839567 commit 490f869

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

src/include/catalog/pg_extension.h

+3
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,7 @@ DECLARE_TOAST(pg_extension, 4147, 4148);
5656
DECLARE_UNIQUE_INDEX_PKEY(pg_extension_oid_index, 3080, ExtensionOidIndexId, pg_extension, btree(oid oid_ops));
5757
DECLARE_UNIQUE_INDEX(pg_extension_name_index, 3081, ExtensionNameIndexId, pg_extension, btree(extname name_ops));
5858

59+
MAKE_SYSCACHE(EXTENSIONOID, pg_extension_oid_index, 2);
60+
MAKE_SYSCACHE(EXTENSIONNAME, pg_extension_name_index, 2);
61+
5962
#endif /* PG_EXTENSION_H */

0 commit comments

Comments
 (0)