Add missing invocations to object access hooks
authorMichael Paquier <[email protected]>
Sat, 23 May 2020 05:03:04 +0000 (14:03 +0900)
committerMichael Paquier <[email protected]>
Sat, 23 May 2020 05:03:04 +0000 (14:03 +0900)
The following commands have been missing calls to object access hooks
InvokeObjectPost{Create|Alter}Hook normally applied to all commands:
- ALTER RULE RENAME TO
- ALTER USER MAPPING
- CREATE ACCESS METHOD
- CREATE STATISTICS

Thanks also to Robert Haas for the discussion.

Author: Mark Dilger
Reviewed-by: Álvaro Herrera, Michael Paquier
Discussion: https://postgr.es/m/435CD295-F409-44E0-91EC-DF32C7AFCD76@enterprisedb.com

src/backend/commands/amcmds.c
src/backend/commands/foreigncmds.c
src/backend/commands/statscmds.c
src/backend/rewrite/rewriteDefine.c

index 7546378bbb8bc5102a2fe0640a3352eb7d0cac58..b884bfa0b003adfdf2b579dd9250f4f28c54aecb 100644 (file)
@@ -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;
index f197869752f83eef5c5b79a27b00d5cf8fa75d91..a399ab4de9c67b813467dce20d088b72a4dcae7a 100644 (file)
@@ -1343,6 +1343,9 @@ AlterUserMapping(AlterUserMappingStmt *stmt)
 
    CatalogTupleUpdate(rel, &tp->t_self, tp);
 
+   InvokeObjectPostAlterHook(UserMappingRelationId,
+                             umId, 0);
+
    ObjectAddressSet(address, UserMappingRelationId, umId);
 
    heap_freetuple(tp);
index e1b1afafd7ed4dbc7b733ba847503ed0706ffaaa..974828545ca957f2294cffd5a15e9f1423690b2a 100644 (file)
@@ -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.
     */
index afc78b3316c6788d7a6e942b8002ec46d79440ca..9989df1107468650571af3045a0684d03a76faf6 100644 (file)
@@ -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);