aboutsummaryrefslogtreecommitdiff
path: root/src/include/catalog/objectaccess.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/catalog/objectaccess.h')
-rw-r--r--src/include/catalog/objectaccess.h23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/include/catalog/objectaccess.h b/src/include/catalog/objectaccess.h
index 67c8c1b5e3f..b9bb1bcd2f5 100644
--- a/src/include/catalog/objectaccess.h
+++ b/src/include/catalog/objectaccess.h
@@ -28,6 +28,7 @@ typedef enum ObjectAccessType
{
OAT_POST_CREATE,
OAT_DROP,
+ OAT_POST_ALTER,
} ObjectAccessType;
/*
@@ -66,11 +67,27 @@ typedef void (*object_access_hook_type) (ObjectAccessType access,
extern PGDLLIMPORT object_access_hook_type object_access_hook;
-#define InvokeObjectAccessHook(access,classId,objectId,subId,arg) \
+extern void RunObjectPostCreateHook(Oid classId, Oid objectId, int subId,
+ bool is_internal);
+extern void RunObjectDropHook(Oid classId, Oid objectId, int subId,
+ int dropflags);
+
+#define InvokeObjectPostCreateHook(classId,objectId,subId) \
+ InvokeObjectPostCreateHookArg((classId),(objectId),(subId),false)
+#define InvokeObjectPostCreateHookArg(classId,objectId,subId,is_internal) \
+ do { \
+ if (object_access_hook) \
+ RunObjectPostCreateHook((classId),(objectId),(subId), \
+ (is_internal)); \
+ } while(0)
+
+#define InvokeObjectDropHook(classId,objectId,subId) \
+ InvokeObjectDropHookArg((classId),(objectId),(subId),0)
+#define InvokeObjectDropHookArg(classId,objectId,subId,dropflags) \
do { \
if (object_access_hook) \
- (*object_access_hook)((access),(classId), \
- (objectId),(subId),(arg)); \
+ RunObjectDropHook((classId),(objectId),(subId), \
+ (dropflags)); \
} while(0)
#endif /* OBJECTACCESS_H */