Header And Logo

PostgreSQL
| The world's most advanced open source database.

Data Structures | Defines | Typedefs | Enumerations | Functions | Variables

objectaccess.h File Reference

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ObjectAccessPostCreate
struct  ObjectAccessDrop
struct  ObjectAccessPostAlter
struct  ObjectAccessNamespaceSearch

Defines

#define InvokeObjectPostCreateHook(classId, objectId, subId)   InvokeObjectPostCreateHookArg((classId),(objectId),(subId),false)
#define InvokeObjectPostCreateHookArg(classId, objectId, subId, is_internal)
#define InvokeObjectDropHook(classId, objectId, subId)   InvokeObjectDropHookArg((classId),(objectId),(subId),0)
#define InvokeObjectDropHookArg(classId, objectId, subId, dropflags)
#define InvokeObjectPostAlterHook(classId, objectId, subId)
#define InvokeObjectPostAlterHookArg(classId, objectId, subId,auxiliaryId, is_internal)
#define InvokeNamespaceSearchHook(objectId, ereport_on_violation)
#define InvokeFunctionExecuteHook(objectId)

Typedefs

typedef enum ObjectAccessType ObjectAccessType
typedef void(* object_access_hook_type )(ObjectAccessType access, Oid classId, Oid objectId, int subId, void *arg)

Enumerations

enum  ObjectAccessType {
  OAT_POST_CREATE, OAT_DROP, OAT_POST_ALTER, OAT_NAMESPACE_SEARCH,
  OAT_FUNCTION_EXECUTE
}

Functions

void RunObjectPostCreateHook (Oid classId, Oid objectId, int subId, bool is_internal)
void RunObjectDropHook (Oid classId, Oid objectId, int subId, int dropflags)
void RunObjectPostAlterHook (Oid classId, Oid objectId, int subId, Oid auxiliaryId, bool is_internal)
bool RunNamespaceSearchHook (Oid objectId, bool ereport_on_volation)
void RunFunctionExecuteHook (Oid objectId)

Variables

PGDLLIMPORT object_access_hook_type object_access_hook

Define Documentation

#define InvokeFunctionExecuteHook (   objectId  ) 
#define InvokeNamespaceSearchHook (   objectId,
  ereport_on_violation 
)
Value:
(!object_access_hook                                            \
     ? true                                                         \
     : RunNamespaceSearchHook((objectId), (ereport_on_violation)))

Definition at line 176 of file objectaccess.h.

Referenced by HandleFunctionRequest(), LookupExplicitNamespace(), LookupNamespaceNoError(), and recomputeNamespacePath().

#define InvokeObjectDropHook (   classId,
  objectId,
  subId 
)    InvokeObjectDropHookArg((classId),(objectId),(subId),0)

Definition at line 156 of file objectaccess.h.

Referenced by dropdb(), DropRole(), and DropTableSpace().

#define InvokeObjectDropHookArg (   classId,
  objectId,
  subId,
  dropflags 
)
Value:
do {                                                            \
        if (object_access_hook)                                     \
            RunObjectDropHook((classId),(objectId),(subId),         \
                              (dropflags));                         \
    } while(0)

Definition at line 158 of file objectaccess.h.

Referenced by deleteOneObject().

#define InvokeObjectPostAlterHook (   classId,
  objectId,
  subId 
)
#define InvokeObjectPostAlterHookArg (   classId,
  objectId,
  subId,
  auxiliaryId,
  is_internal 
)
Value:
do {                                                            \
        if (object_access_hook)                                     \
            RunObjectPostAlterHook((classId),(objectId),(subId),    \
                                   (auxiliaryId),(is_internal));    \
    } while(0)

Definition at line 169 of file objectaccess.h.

Referenced by AlterSetting(), ATExecDropInherit(), ATExecSetRelOptions(), index_constraint_create(), mark_index_clustered(), RenameRelationInternal(), StoreCatalogInheritance1(), and swap_relation_files().

#define InvokeObjectPostCreateHook (   classId,
  objectId,
  subId 
)    InvokeObjectPostCreateHookArg((classId),(objectId),(subId),false)
#define InvokeObjectPostCreateHookArg (   classId,
  objectId,
  subId,
  is_internal 
)
Value:
do {                                                            \
        if (object_access_hook)                                     \
            RunObjectPostCreateHook((classId),(objectId),(subId),   \
                                    (is_internal));                 \
    } while(0)

Definition at line 149 of file objectaccess.h.

Referenced by CreateConstraintEntry(), CreateTrigger(), heap_create_with_catalog(), index_create(), and StoreAttrDefault().


Typedef Documentation

typedef void(* object_access_hook_type)(ObjectAccessType access, Oid classId, Oid objectId, int subId, void *arg)

Definition at line 122 of file objectaccess.h.


Enumeration Type Documentation

Enumerator:
OAT_POST_CREATE 
OAT_DROP 
OAT_POST_ALTER 
OAT_NAMESPACE_SEARCH 
OAT_FUNCTION_EXECUTE 

Definition at line 42 of file objectaccess.h.

{
    OAT_POST_CREATE,
    OAT_DROP,
    OAT_POST_ALTER,
    OAT_NAMESPACE_SEARCH,
    OAT_FUNCTION_EXECUTE,
} ObjectAccessType;


Function Documentation

void RunFunctionExecuteHook ( Oid  objectId  ) 

Definition at line 120 of file objectaccess.c.

References Assert, NULL, and object_access_hook.

{
    /* caller should check, but just in case... */
    Assert(object_access_hook != NULL);

    (*object_access_hook)(OAT_FUNCTION_EXECUTE,
                          ProcedureRelationId, objectId, 0,
                          NULL);
}

bool RunNamespaceSearchHook ( Oid  objectId,
bool  ereport_on_volation 
)

Definition at line 96 of file objectaccess.c.

References Assert, ObjectAccessNamespaceSearch::ereport_on_violation, NULL, object_access_hook, and ObjectAccessNamespaceSearch::result.

{
    ObjectAccessNamespaceSearch ns_arg;

    /* caller should check, but just in case... */
    Assert(object_access_hook != NULL);

    memset(&ns_arg, 0, sizeof(ObjectAccessNamespaceSearch));
    ns_arg.ereport_on_violation = ereport_on_violation;
    ns_arg.result = true;

    (*object_access_hook)(OAT_NAMESPACE_SEARCH,
                          NamespaceRelationId, objectId, 0,
                          (void *) &ns_arg);

    return ns_arg.result;
}

void RunObjectDropHook ( Oid  classId,
Oid  objectId,
int  subId,
int  dropflags 
)

Definition at line 51 of file objectaccess.c.

References Assert, ObjectAccessDrop::dropflags, NULL, and object_access_hook.

{
    ObjectAccessDrop    drop_arg;

    /* caller should check, but just in case... */
    Assert(object_access_hook != NULL);

    memset(&drop_arg, 0, sizeof(ObjectAccessDrop));
    drop_arg.dropflags = dropflags;

    (*object_access_hook)(OAT_DROP,
                          classId, objectId, subId,
                          (void *) &drop_arg);
}

void RunObjectPostAlterHook ( Oid  classId,
Oid  objectId,
int  subId,
Oid  auxiliaryId,
bool  is_internal 
)

Definition at line 73 of file objectaccess.c.

References Assert, ObjectAccessPostAlter::auxiliary_id, ObjectAccessPostAlter::is_internal, NULL, and object_access_hook.

{
    ObjectAccessPostAlter   pa_arg;

    /* caller should check, but just in case... */
    Assert(object_access_hook != NULL);

    memset(&pa_arg, 0, sizeof(ObjectAccessPostAlter));
    pa_arg.auxiliary_id = auxiliaryId;
    pa_arg.is_internal = is_internal;

    (*object_access_hook)(OAT_POST_ALTER,
                          classId, objectId, subId,
                          (void *) &pa_arg);
}

void RunObjectPostCreateHook ( Oid  classId,
Oid  objectId,
int  subId,
bool  is_internal 
)

Definition at line 29 of file objectaccess.c.

References Assert, ObjectAccessPostCreate::is_internal, NULL, and object_access_hook.

{
    ObjectAccessPostCreate  pc_arg;

    /* caller should check, but just in case... */
    Assert(object_access_hook != NULL);

    memset(&pc_arg, 0, sizeof(ObjectAccessPostCreate));
    pc_arg.is_internal = is_internal;

    (*object_access_hook)(OAT_POST_CREATE,
                          classId, objectId, subId,
                          (void *) &pc_arg);
}


Variable Documentation