Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes15kdownloads
pg_trigger_d.h110 linesDownload Raw Back to catalog
1/*-------------------------------------------------------------------------
2 *
3 * pg_trigger_d.h
4 *    Macro definitions for pg_trigger
5 *
6 * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
7 * Portions Copyright (c) 1994, Regents of the University of California
8 *
9 * NOTES
10 *  ******************************
11 *  *** DO NOT EDIT THIS FILE! ***
12 *  ******************************
13 *
14 *  It has been GENERATED by src/backend/catalog/genbki.pl
15 *
16 *-------------------------------------------------------------------------
17 */
18#ifndef PG_TRIGGER_D_H
19#define PG_TRIGGER_D_H
20
21#define TriggerRelationId 2620
22#define TriggerConstraintIndexId 2699
23#define TriggerRelidNameIndexId 2701
24#define TriggerOidIndexId 2702
25
26#define Anum_pg_trigger_oid 1
27#define Anum_pg_trigger_tgrelid 2
28#define Anum_pg_trigger_tgparentid 3
29#define Anum_pg_trigger_tgname 4
30#define Anum_pg_trigger_tgfoid 5
31#define Anum_pg_trigger_tgtype 6
32#define Anum_pg_trigger_tgenabled 7
33#define Anum_pg_trigger_tgisinternal 8
34#define Anum_pg_trigger_tgconstrrelid 9
35#define Anum_pg_trigger_tgconstrindid 10
36#define Anum_pg_trigger_tgconstraint 11
37#define Anum_pg_trigger_tgdeferrable 12
38#define Anum_pg_trigger_tginitdeferred 13
39#define Anum_pg_trigger_tgnargs 14
40#define Anum_pg_trigger_tgattr 15
41#define Anum_pg_trigger_tgargs 16
42#define Anum_pg_trigger_tgqual 17
43#define Anum_pg_trigger_tgoldtable 18
44#define Anum_pg_trigger_tgnewtable 19
45
46#define Natts_pg_trigger 19
47
48
49/* Bits within tgtype */
50#define TRIGGER_TYPE_ROW				(1 << 0)
51#define TRIGGER_TYPE_BEFORE				(1 << 1)
52#define TRIGGER_TYPE_INSERT				(1 << 2)
53#define TRIGGER_TYPE_DELETE				(1 << 3)
54#define TRIGGER_TYPE_UPDATE				(1 << 4)
55#define TRIGGER_TYPE_TRUNCATE			(1 << 5)
56#define TRIGGER_TYPE_INSTEAD			(1 << 6)
57
58#define TRIGGER_TYPE_LEVEL_MASK			(TRIGGER_TYPE_ROW)
59#define TRIGGER_TYPE_STATEMENT			0
60
61/* Note bits within TRIGGER_TYPE_TIMING_MASK aren't adjacent */
62#define TRIGGER_TYPE_TIMING_MASK \
63	(TRIGGER_TYPE_BEFORE | TRIGGER_TYPE_INSTEAD)
64#define TRIGGER_TYPE_AFTER				0
65
66#define TRIGGER_TYPE_EVENT_MASK \
67	(TRIGGER_TYPE_INSERT | TRIGGER_TYPE_DELETE | TRIGGER_TYPE_UPDATE | TRIGGER_TYPE_TRUNCATE)
68
69/* Macros for manipulating tgtype */
70#define TRIGGER_CLEAR_TYPE(type)		((type) = 0)
71
72#define TRIGGER_SETT_ROW(type)			((type) |= TRIGGER_TYPE_ROW)
73#define TRIGGER_SETT_STATEMENT(type)	((type) |= TRIGGER_TYPE_STATEMENT)
74#define TRIGGER_SETT_BEFORE(type)		((type) |= TRIGGER_TYPE_BEFORE)
75#define TRIGGER_SETT_AFTER(type)		((type) |= TRIGGER_TYPE_AFTER)
76#define TRIGGER_SETT_INSTEAD(type)		((type) |= TRIGGER_TYPE_INSTEAD)
77#define TRIGGER_SETT_INSERT(type)		((type) |= TRIGGER_TYPE_INSERT)
78#define TRIGGER_SETT_DELETE(type)		((type) |= TRIGGER_TYPE_DELETE)
79#define TRIGGER_SETT_UPDATE(type)		((type) |= TRIGGER_TYPE_UPDATE)
80#define TRIGGER_SETT_TRUNCATE(type)		((type) |= TRIGGER_TYPE_TRUNCATE)
81
82#define TRIGGER_FOR_ROW(type)			((type) & TRIGGER_TYPE_ROW)
83#define TRIGGER_FOR_BEFORE(type)		(((type) & TRIGGER_TYPE_TIMING_MASK) == TRIGGER_TYPE_BEFORE)
84#define TRIGGER_FOR_AFTER(type)			(((type) & TRIGGER_TYPE_TIMING_MASK) == TRIGGER_TYPE_AFTER)
85#define TRIGGER_FOR_INSTEAD(type)		(((type) & TRIGGER_TYPE_TIMING_MASK) == TRIGGER_TYPE_INSTEAD)
86#define TRIGGER_FOR_INSERT(type)		((type) & TRIGGER_TYPE_INSERT)
87#define TRIGGER_FOR_DELETE(type)		((type) & TRIGGER_TYPE_DELETE)
88#define TRIGGER_FOR_UPDATE(type)		((type) & TRIGGER_TYPE_UPDATE)
89#define TRIGGER_FOR_TRUNCATE(type)		((type) & TRIGGER_TYPE_TRUNCATE)
90
91/*
92 * Efficient macro for checking if tgtype matches a particular level
93 * (TRIGGER_TYPE_ROW or TRIGGER_TYPE_STATEMENT), timing (TRIGGER_TYPE_BEFORE,
94 * TRIGGER_TYPE_AFTER or TRIGGER_TYPE_INSTEAD), and event (TRIGGER_TYPE_INSERT,
95 * TRIGGER_TYPE_DELETE, TRIGGER_TYPE_UPDATE, or TRIGGER_TYPE_TRUNCATE).  Note
96 * that a tgtype can match more than one event, but only one level or timing.
97 */
98#define TRIGGER_TYPE_MATCHES(type, level, timing, event) \
99	(((type) & (TRIGGER_TYPE_LEVEL_MASK | TRIGGER_TYPE_TIMING_MASK | (event))) == ((level) | (timing) | (event)))
100
101/*
102 * Macro to determine whether tgnewtable or tgoldtable has been specified for
103 * a trigger.
104 */
105#define TRIGGER_USES_TRANSITION_TABLE(namepointer) \
106	((namepointer) != (char *) NULL)
107
108
109#endif							/* PG_TRIGGER_D_H */
110 
codekingpro/portable-devtools · Team Ai