/* Plugin provides a hook function matching one or both of these signatures. */ typedefvoid (*object_access_hook_type) (ObjectAccessType access,
Oid classId,
Oid objectId, int subId, void *arg);
typedefvoid (*object_access_hook_type_str) (ObjectAccessType access,
Oid classId, constchar *objectStr, int subId, void *arg);
/* Plugin sets this variable to a suitable hook function. */ extern PGDLLIMPORT object_access_hook_type object_access_hook; extern PGDLLIMPORT object_access_hook_type_str object_access_hook_str;
/* Core code uses these functions to call the hook (see macros below). */ externvoid RunObjectPostCreateHook(Oid classId, Oid objectId, int subId, bool is_internal); externvoid RunObjectDropHook(Oid classId, Oid objectId, int subId, int dropflags); externvoid RunObjectTruncateHook(Oid objectId); externvoid RunObjectPostAlterHook(Oid classId, Oid objectId, int subId,
Oid auxiliaryId, bool is_internal); externbool RunNamespaceSearchHook(Oid objectId, bool ereport_on_violation); externvoid RunFunctionExecuteHook(Oid objectId);
/* String versions */ externvoid RunObjectPostCreateHookStr(Oid classId, constchar *objectName, int subId, bool is_internal); externvoid RunObjectDropHookStr(Oid classId, constchar *objectName, int subId, int dropflags); externvoid RunObjectTruncateHookStr(constchar *objectName); externvoid RunObjectPostAlterHookStr(Oid classId, constchar *objectName, int subId,
Oid auxiliaryId, bool is_internal); externbool RunNamespaceSearchHookStr(constchar *objectName, bool ereport_on_violation); externvoid RunFunctionExecuteHookStr(constchar *objectName);
#define InvokeFunctionExecuteHookStr(objectName) \ do { \ if (object_access_hook_str) \
RunFunctionExecuteHookStr(objectName); \
} while(0)
#endif/* OBJECTACCESS_H */
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.18Bemerkung:
(vorverarbeitet am 2026-08-08)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.