From 90119a3ea6dfa6ca28d02c30dbdce370e8f0a3a6 Mon Sep 17 00:00:00 2001 From: Mark Dilger Date: Thu, 19 Mar 2020 11:35:09 -0700 Subject: [PATCH v3] Adding missing Object Access hook invocations. There appears to be no reason for skipping the invocation of the object access hook infrastructure for the following commands, yet they were lacking the InvokeObjectPost{Create,Alter}Hook calls that would be expected: ALTER RULE ALTER USER MAPPING CREATE ACCESS METHOD CREATE STATISTICS There doesn't seem to be any good regression test coverage for when and how the object_access_hook is invoked, so no additional coverage is included here, either. Adding regression test coverage seems like another patch to be submitted separately. --- src/backend/commands/amcmds.c | 3 +++ src/backend/commands/foreigncmds.c | 3 +++ src/backend/commands/statscmds.c | 2 ++ src/backend/rewrite/rewriteDefine.c | 2 ++ 4 files changed, 10 insertions(+) diff --git a/src/backend/commands/amcmds.c b/src/backend/commands/amcmds.c index 7546378bbb..b884bfa0b0 100644 --- a/src/backend/commands/amcmds.c +++ b/src/backend/commands/amcmds.c @@ -18,6 +18,7 @@ #include "catalog/catalog.h" #include "catalog/dependency.h" #include "catalog/indexing.h" +#include "catalog/objectaccess.h" #include "catalog/pg_am.h" #include "catalog/pg_proc.h" #include "catalog/pg_type.h" @@ -107,6 +108,8 @@ CreateAccessMethod(CreateAmStmt *stmt) recordDependencyOnCurrentExtension(&myself, false); + InvokeObjectPostCreateHook(AccessMethodRelationId, amoid, 0); + table_close(rel, RowExclusiveLock); return myself; diff --git a/src/backend/commands/foreigncmds.c b/src/backend/commands/foreigncmds.c index f197869752..a399ab4de9 100644 --- a/src/backend/commands/foreigncmds.c +++ b/src/backend/commands/foreigncmds.c @@ -1343,6 +1343,9 @@ AlterUserMapping(AlterUserMappingStmt *stmt) CatalogTupleUpdate(rel, &tp->t_self, tp); + InvokeObjectPostAlterHook(UserMappingRelationId, + umId, 0); + ObjectAddressSet(address, UserMappingRelationId, umId); heap_freetuple(tp); diff --git a/src/backend/commands/statscmds.c b/src/backend/commands/statscmds.c index 988cdba6f5..d30059d043 100644 --- a/src/backend/commands/statscmds.c +++ b/src/backend/commands/statscmds.c @@ -374,6 +374,8 @@ CreateStatistics(CreateStatsStmt *stmt) relation_close(datarel, RowExclusiveLock); + InvokeObjectPostCreateHook(StatisticExtRelationId, statoid, 0); + /* * Invalidate relcache so that others see the new statistics object. */ diff --git a/src/backend/rewrite/rewriteDefine.c b/src/backend/rewrite/rewriteDefine.c index afc78b3316..9989df1107 100644 --- a/src/backend/rewrite/rewriteDefine.c +++ b/src/backend/rewrite/rewriteDefine.c @@ -1003,6 +1003,8 @@ RenameRewriteRule(RangeVar *relation, const char *oldName, CatalogTupleUpdate(pg_rewrite_desc, &ruletup->t_self, ruletup); + InvokeObjectPostAlterHook(RewriteRelationId, ruleOid, 0); + heap_freetuple(ruletup); table_close(pg_rewrite_desc, RowExclusiveLock); -- 2.21.1 (Apple Git-122.3)