Hackfut Security File Manager
Current Path:
/opt/td-agent/embedded/include/postgresql/server/catalog
opt
/
td-agent
/
embedded
/
include
/
postgresql
/
server
/
catalog
/
📁
..
📄
binary_upgrade.h
(1.02 KB)
📄
catalog.h
(1.59 KB)
📄
catversion.h
(2.53 KB)
📄
dependency.h
(10.05 KB)
📄
genbki.h
(1.68 KB)
📄
heap.h
(4.06 KB)
📄
index.h
(3.65 KB)
📄
indexing.h
(17.13 KB)
📄
namespace.h
(5.91 KB)
📄
objectaccess.h
(6.03 KB)
📄
objectaddress.h
(2.83 KB)
📄
opfam_internal.h
(869 B)
📄
pg_aggregate.h
(25.06 KB)
📄
pg_am.h
(2.33 KB)
📄
pg_amop.h
(40.58 KB)
📄
pg_amproc.h
(25.23 KB)
📄
pg_attrdef.h
(1.63 KB)
📄
pg_attribute.h
(7.19 KB)
📄
pg_auth_members.h
(1.75 KB)
📄
pg_authid.h
(3.51 KB)
📄
pg_cast.h
(12.1 KB)
📄
pg_class.h
(7.02 KB)
📄
pg_collation.h
(2.23 KB)
📄
pg_collation_fn.h
(735 B)
📄
pg_constraint.h
(6.23 KB)
📄
pg_constraint_fn.h
(2.61 KB)
📄
pg_control.h
(8.84 KB)
📄
pg_conversion.h
(2.13 KB)
📄
pg_conversion_fn.h
(880 B)
📄
pg_database.h
(2.74 KB)
📄
pg_db_role_setting.h
(2.01 KB)
📄
pg_default_acl.h
(2.1 KB)
📄
pg_depend.h
(2.73 KB)
📄
pg_description.h
(2.94 KB)
📄
pg_enum.h
(1.84 KB)
📄
pg_event_trigger.h
(1.9 KB)
📄
pg_extension.h
(2.1 KB)
📄
pg_foreign_data_wrapper.h
(2.02 KB)
📄
pg_foreign_server.h
(1.87 KB)
📄
pg_foreign_table.h
(1.59 KB)
📄
pg_index.h
(3.9 KB)
📄
pg_inherits.h
(1.46 KB)
📄
pg_inherits_fn.h
(850 B)
📄
pg_init_privs.h
(3.35 KB)
📄
pg_language.h
(2.38 KB)
📄
pg_largeobject.h
(1.75 KB)
📄
pg_largeobject_metadata.h
(1.67 KB)
📄
pg_namespace.h
(2.23 KB)
📄
pg_opclass.h
(14.31 KB)
📄
pg_operator.h
(102.4 KB)
📄
pg_operator_fn.h
(1 KB)
📄
pg_opfamily.h
(8.55 KB)
📄
pg_pltemplate.h
(3.16 KB)
📄
pg_policy.h
(1.35 KB)
📄
pg_proc.h
(548.84 KB)
📄
pg_proc_fn.h
(1.27 KB)
📄
pg_range.h
(2.53 KB)
📄
pg_replication_origin.h
(1.91 KB)
📄
pg_rewrite.h
(1.8 KB)
📄
pg_seclabel.h
(1.37 KB)
📄
pg_shdepend.h
(2.75 KB)
📄
pg_shdescription.h
(2.41 KB)
📄
pg_shseclabel.h
(1.48 KB)
📄
pg_statistic.h
(12.31 KB)
📄
pg_tablespace.h
(1.85 KB)
📄
pg_transform.h
(1.1 KB)
📄
pg_trigger.h
(5.63 KB)
📄
pg_ts_config.h
(1.61 KB)
📄
pg_ts_config_map.h
(2.28 KB)
📄
pg_ts_dict.h
(1.78 KB)
📄
pg_ts_parser.h
(1.95 KB)
📄
pg_ts_template.h
(2.1 KB)
📄
pg_type.h
(43.83 KB)
📄
pg_type_fn.h
(2.13 KB)
📄
pg_user_mapping.h
(1.59 KB)
📄
schemapg.h
(17.11 KB)
📄
storage.h
(1.12 KB)
📄
storage_xlog.h
(1.55 KB)
📄
toasting.h
(2.23 KB)
Editing: objectaccess.h
/* * objectaccess.h * * Object access hooks. * * Portions Copyright (c) 1996-2016, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California */ #ifndef OBJECTACCESS_H #define OBJECTACCESS_H /* * Object access hooks are intended to be called just before or just after * performing certain actions on a SQL object. This is intended as * infrastructure for security or logging plugins. * * OAT_POST_CREATE should be invoked just after the object is created. * Typically, this is done after inserting the primary catalog records and * associated dependencies. * * OAT_DROP should be invoked just before deletion of objects; typically * deleteOneObject(). Its arguments are packed within ObjectAccessDrop. * * OAT_POST_ALTER should be invoked just after the object is altered, * but before the command counter is incremented. An extension using the * hook can use a current MVCC snapshot to get the old version of the tuple, * and can use SnapshotSelf to get the new version of the tuple. * * OAT_NAMESPACE_SEARCH should be invoked prior to object name lookup under * a particular namespace. This event is equivalent to usage permission * on a schema under the default access control mechanism. * * OAT_FUNCTION_EXECUTE should be invoked prior to function execution. * This event is almost equivalent to execute permission on functions, * except for the case when execute permission is checked during object * creation or altering, because OAT_POST_CREATE or OAT_POST_ALTER are * sufficient for extensions to track these kind of checks. * * Other types may be added in the future. */ typedef enum ObjectAccessType { OAT_POST_CREATE, OAT_DROP, OAT_POST_ALTER, OAT_NAMESPACE_SEARCH, OAT_FUNCTION_EXECUTE } ObjectAccessType; /* * Arguments of OAT_POST_CREATE event */ typedef struct { /* * This flag informs extensions whether the context of this creation is * invoked by user's operations, or not. E.g, it shall be dealt as * internal stuff on toast tables or indexes due to type changes. */ bool is_internal; } ObjectAccessPostCreate; /* * Arguments of OAT_DROP event */ typedef struct { /* * Flags to inform extensions the context of this deletion. Also see * PERFORM_DELETION_* in dependency.h */ int dropflags; } ObjectAccessDrop; /* * Arguments of OAT_POST_ALTER event */ typedef struct { /* * This identifier is used when system catalog takes two IDs to identify a * particular tuple of the catalog. It is only used when the caller want * to identify an entry of pg_inherits, pg_db_role_setting or * pg_user_mapping. Elsewhere, InvalidOid should be set. */ Oid auxiliary_id; /* * If this flag is set, the user hasn't requested that the object be * altered, but we're doing it anyway for some internal reason. * Permissions-checking hooks may want to skip checks if, say, we're alter * the constraints of a temporary heap during CLUSTER. */ bool is_internal; } ObjectAccessPostAlter; /* * Arguments of OAT_NAMESPACE_SEARCH */ typedef struct { /* * If true, hook should report an error when permission to search this * schema is denied. */ bool ereport_on_violation; /* * This is, in essence, an out parameter. Core code should initialize * this to true, and any extension that wants to deny access should reset * it to false. But an extension should be careful never to store a true * value here, so that in case there are multiple extensions access is * only allowed if all extensions agree. */ bool result; } ObjectAccessNamespaceSearch; /* Plugin provides a hook function matching this signature. */ typedef void (*object_access_hook_type) (ObjectAccessType access, Oid classId, Oid objectId, int subId, void *arg); /* Plugin sets this variable to a suitable hook function. */ extern PGDLLIMPORT object_access_hook_type object_access_hook; /* Core code uses these functions to call the hook (see macros below). */ extern void RunObjectPostCreateHook(Oid classId, Oid objectId, int subId, bool is_internal); extern void RunObjectDropHook(Oid classId, Oid objectId, int subId, int dropflags); extern void RunObjectPostAlterHook(Oid classId, Oid objectId, int subId, Oid auxiliaryId, bool is_internal); extern bool RunNamespaceSearchHook(Oid objectId, bool ereport_on_volation); extern void RunFunctionExecuteHook(Oid objectId); /* * The following macros are wrappers around the functions above; these should * normally be used to invoke the hook in lieu of calling the above functions * directly. */ #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) \ RunObjectDropHook((classId),(objectId),(subId), \ (dropflags)); \ } while(0) #define InvokeObjectPostAlterHook(classId,objectId,subId) \ InvokeObjectPostAlterHookArg((classId),(objectId),(subId), \ InvalidOid,false) #define InvokeObjectPostAlterHookArg(classId,objectId,subId, \ auxiliaryId,is_internal) \ do { \ if (object_access_hook) \ RunObjectPostAlterHook((classId),(objectId),(subId), \ (auxiliaryId),(is_internal)); \ } while(0) #define InvokeNamespaceSearchHook(objectId, ereport_on_violation) \ (!object_access_hook \ ? true \ : RunNamespaceSearchHook((objectId), (ereport_on_violation))) #define InvokeFunctionExecuteHook(objectId) \ do { \ if (object_access_hook) \ RunFunctionExecuteHook(objectId); \ } while(0) #endif /* OBJECTACCESS_H */
Upload File
Create Folder