PostgreSQL Source Code: src/include/commands/event_trigger.h Source File

PostgreSQL Source Code git master
event_trigger.h
Go to the documentation of this file.
1/*-------------------------------------------------------------------------
2 *
3 * event_trigger.h
4 * Declarations for command trigger handling.
5 *
6 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
7 * Portions Copyright (c) 1994, Regents of the University of California
8 *
9 * src/include/commands/event_trigger.h
10 *
11 *-------------------------------------------------------------------------
12 */
13#ifndef EVENT_TRIGGER_H
14#define EVENT_TRIGGER_H
15
16#include "catalog/dependency.h"
17#include "catalog/objectaddress.h"
18#include "catalog/pg_event_trigger.h"
19#include "nodes/parsenodes.h"
20#include "tcop/cmdtag.h"
21#include "tcop/deparse_utility.h"
22#include "utils/aclchk_internal.h"
23
24 typedef struct EventTriggerData
25{
26 NodeTag type;
27 const char *event; /* event name */
28 Node *parsetree; /* parse tree */
29 CommandTag tag;
30 } EventTriggerData;
31
32extern PGDLLIMPORT bool event_triggers;
33
34/*
35 * Reasons for relation rewrites.
36 *
37 * pg_event_trigger_table_rewrite_reason() uses these values, so make sure to
38 * update the documentation when changing this list.
39 */
40 #define AT_REWRITE_ALTER_PERSISTENCE 0x01
41 #define AT_REWRITE_DEFAULT_VAL 0x02
42 #define AT_REWRITE_COLUMN_REWRITE 0x04
43 #define AT_REWRITE_ACCESS_METHOD 0x08
44
45/*
46 * EventTriggerData is the node type that is passed as fmgr "context" info
47 * when a function is called by the event trigger manager.
48 */
49 #define CALLED_AS_EVENT_TRIGGER(fcinfo) \
50 ((fcinfo)->context != NULL && IsA((fcinfo)->context, EventTriggerData))
51
52extern Oid CreateEventTrigger(CreateEventTrigStmt *stmt);
53extern Oid get_event_trigger_oid(const char *trigname, bool missing_ok);
54
55extern Oid AlterEventTrigger(AlterEventTrigStmt *stmt);
56extern ObjectAddress AlterEventTriggerOwner(const char *name, Oid newOwnerId);
57extern void AlterEventTriggerOwner_oid(Oid, Oid newOwnerId);
58
59extern bool EventTriggerSupportsObjectType(ObjectType obtype);
60extern bool EventTriggerSupportsObject(const ObjectAddress *object);
61extern void EventTriggerDDLCommandStart(Node *parsetree);
62extern void EventTriggerDDLCommandEnd(Node *parsetree);
63extern void EventTriggerSQLDrop(Node *parsetree);
64extern void EventTriggerTableRewrite(Node *parsetree, Oid tableOid, int reason);
65extern void EventTriggerOnLogin(void);
66
67extern bool EventTriggerBeginCompleteQuery(void);
68extern void EventTriggerEndCompleteQuery(void);
69extern bool trackDroppedObjectsNeeded(void);
70extern void EventTriggerSQLDropAddObject(const ObjectAddress *object,
71 bool original, bool normal);
72
73extern void EventTriggerInhibitCommandCollection(void);
74extern void EventTriggerUndoInhibitCommandCollection(void);
75
76extern void EventTriggerCollectSimpleCommand(ObjectAddress address,
77 ObjectAddress secondaryObject,
78 Node *parsetree);
79
80extern void EventTriggerAlterTableStart(Node *parsetree);
81extern void EventTriggerAlterTableRelid(Oid objectId);
82extern void EventTriggerCollectAlterTableSubcmd(Node *subcmd,
83 ObjectAddress address);
84extern void EventTriggerAlterTableEnd(void);
85
86extern void EventTriggerCollectGrant(InternalGrant *istmt);
87extern void EventTriggerCollectAlterOpFam(AlterOpFamilyStmt *stmt,
88 Oid opfamoid, List *operators,
89 List *procedures);
90extern void EventTriggerCollectCreateOpClass(CreateOpClassStmt *stmt,
91 Oid opcoid, List *operators,
92 List *procedures);
93extern void EventTriggerCollectAlterTSConfig(AlterTSConfigurationStmt *stmt,
94 Oid cfgId, Oid *dictIds, int ndicts);
95extern void EventTriggerCollectAlterDefPrivs(AlterDefaultPrivilegesStmt *stmt);
96
97#endif /* EVENT_TRIGGER_H */
#define PGDLLIMPORT
Definition: c.h:1319
CommandTag
Definition: cmdtag.h:23
void EventTriggerUndoInhibitCommandCollection(void)
void EventTriggerSQLDropAddObject(const ObjectAddress *object, bool original, bool normal)
void EventTriggerAlterTableStart(Node *parsetree)
void EventTriggerOnLogin(void)
Definition: event_trigger.c:897
void EventTriggerCollectAlterDefPrivs(AlterDefaultPrivilegesStmt *stmt)
bool trackDroppedObjectsNeeded(void)
void EventTriggerDDLCommandStart(Node *parsetree)
Definition: event_trigger.c:725
void EventTriggerInhibitCommandCollection(void)
bool EventTriggerBeginCompleteQuery(void)
void EventTriggerTableRewrite(Node *parsetree, Oid tableOid, int reason)
bool EventTriggerSupportsObject(const ObjectAddress *object)
bool EventTriggerSupportsObjectType(ObjectType obtype)
Oid CreateEventTrigger(CreateEventTrigStmt *stmt)
Definition: event_trigger.c:124
Oid AlterEventTrigger(AlterEventTrigStmt *stmt)
Definition: event_trigger.c:427
void EventTriggerCollectGrant(InternalGrant *istmt)
void EventTriggerSQLDrop(Node *parsetree)
Definition: event_trigger.c:824
void EventTriggerEndCompleteQuery(void)
void EventTriggerAlterTableRelid(Oid objectId)
struct EventTriggerData EventTriggerData
void EventTriggerCollectAlterTSConfig(AlterTSConfigurationStmt *stmt, Oid cfgId, Oid *dictIds, int ndicts)
PGDLLIMPORT bool event_triggers
Definition: event_trigger.c:86
void AlterEventTriggerOwner_oid(Oid, Oid newOwnerId)
Definition: event_trigger.c:514
void EventTriggerAlterTableEnd(void)
void EventTriggerCollectAlterOpFam(AlterOpFamilyStmt *stmt, Oid opfamoid, List *operators, List *procedures)
void EventTriggerCollectCreateOpClass(CreateOpClassStmt *stmt, Oid opcoid, List *operators, List *procedures)
void EventTriggerCollectSimpleCommand(ObjectAddress address, ObjectAddress secondaryObject, Node *parsetree)
void EventTriggerDDLCommandEnd(Node *parsetree)
Definition: event_trigger.c:776
void EventTriggerCollectAlterTableSubcmd(Node *subcmd, ObjectAddress address)
Oid get_event_trigger_oid(const char *trigname, bool missing_ok)
Definition: event_trigger.c:579
ObjectAddress AlterEventTriggerOwner(const char *name, Oid newOwnerId)
Definition: event_trigger.c:479
#define stmt
Definition: indent_codes.h:59
NodeTag
Definition: nodes.h:27
ObjectType
Definition: parsenodes.h:2324
unsigned int Oid
Definition: postgres_ext.h:32
CommandTag tag
Definition: event_trigger.h:29
const char * event
Definition: event_trigger.h:27
Node * parsetree
Definition: event_trigger.h:28
Definition: pg_list.h:54
Definition: nodes.h:135
const char * name

AltStyle によって変換されたページ (->オリジナル) /