Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit2d7b93c

Browse files
committed
Welcome, triggers
1 parent6a061da commit2d7b93c

File tree

5 files changed

+153
-30
lines changed

5 files changed

+153
-30
lines changed

‎src/include/catalog/indexing.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
* Copyright (c) 1994, Regents of the University of California
99
*
10-
* $Id: indexing.h,v 1.3 1997/08/21 01:37:48 vadim Exp $
10+
* $Id: indexing.h,v 1.4 1997/08/31 09:55:20 vadim Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -26,6 +26,7 @@
2626
#defineNum_pg_class_indices2
2727
#defineNum_pg_attrdef_indices1
2828
#defineNum_pg_relcheck_indices1
29+
#defineNum_pg_trigger_indices1
2930

3031

3132
/*
@@ -43,13 +44,15 @@
4344
#defineClassOidIndex "pg_classoidind"
4445
#defineAttrDefaultIndex "pg_attrdefind"
4546
#defineRelCheckIndex "pg_relcheckind"
47+
#defineTriggerRelidIndex "pg_trigrelidind"
4648

4749
externchar*Name_pg_attr_indices[];
4850
externchar*Name_pg_proc_indices[];
4951
externchar*Name_pg_type_indices[];
5052
externchar*Name_pg_class_indices[];
5153
externchar*Name_pg_attrdef_indices[];
5254
externchar*Name_pg_relcheck_indices[];
55+
externchar*Name_pg_trigger_indices[];
5356

5457
externchar*IndexedCatalogNames[];
5558

@@ -107,6 +110,8 @@ DECLARE_INDEX(pg_classoidind on pg_class using btree (Oid oid_ops));
107110
DECLARE_INDEX(pg_attrdefindonpg_attrdefusingbtree (adrelidoid_ops));
108111
DECLARE_INDEX(pg_relcheckindonpg_relcheckusingbtree (rcrelidoid_ops));
109112

113+
DECLARE_INDEX(pg_trigrelidindonpg_triggerusingbtree (tgrelidoid_ops));
114+
110115
/* now build indices in the initialization scripts */
111116
BUILD_INDICES
112117

‎src/include/catalog/pg_attribute.h

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
* Copyright (c) 1994, Regents of the University of California
99
*
10-
* $Id: pg_attribute.h,v 1.12 1997/08/22 04:04:18 vadim Exp $
10+
* $Id: pg_attribute.h,v 1.13 1997/08/31 09:55:21 vadim Exp $
1111
*
1212
* NOTES
1313
* the genbki.sh script reads this file and generates .bki
@@ -417,9 +417,10 @@ DATA(insert OID = 0 ( 1249 vtype 18 0 1 -11 0 -1 t f c f f));
417417
{ 1259l, {"relarch"}, 18, 0l, 1, 11, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
418418
{ 1259l, {"relnatts"}, 21, 0l, 2, 12, 0l, -1l, '\001', '\0', 's', '\0', '\0' }, \
419419
{ 1259l, {"relsmgr"}, 210l, 0l, 2, 13, 0l, -1l, '\001', '\0', 's', '\0', '\0' }, \
420-
{ 1259l, {"relchecks"}, 21l, 0l, 2, 14, 0l, -1l, '\001', '\0', 's', '\0', '\0' }, \
421-
{ 1259l, {"relhasrules"}, 16, 0l, 1, 15, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
422-
{ 1259l, {"relacl"}, 1034l, 0l, -1, 16, 0l, -1l, '\0', '\0', 'i', '\0', '\0' }
420+
{ 1259l, {"relchecks"}, 21l, 0l, 2, 14, 0l, -1l, '\001', '\0', 's', '\0', '\0' }, \
421+
{ 1259l, {"reltriggers"}, 21l, 0l, 2, 15, 0l, -1l, '\001', '\0', 's', '\0', '\0' }, \
422+
{ 1259l, {"relhasrules"}, 16, 0l, 1, 16, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
423+
{ 1259l, {"relacl"}, 1034l, 0l, -1, 17, 0l, -1l, '\0', '\0', 'i', '\0', '\0' }
423424

424425
DATA(insertOID=0 (1259relname190NAMEDATALEN10-1ffiff));
425426
DATA(insertOID=0 (1259reltype260420-1tfiff));
@@ -436,8 +437,9 @@ DATA(insert OID = 0 ( 1259 relarch 18 0 1 11 0 -1 t f c f f));
436437
DATA(insertOID=0 (1259relnatts2102120-1tfsff));
437438
DATA(insertOID=0 (1259relsmgr21002130-1tfsff));
438439
DATA(insertOID=0 (1259relchecks2102140-1tfsff));
439-
DATA(insertOID=0 (1259relhasrules1601150-1tfcff));
440-
DATA(insertOID=0 (1259relacl10340-1160-1ffiff));
440+
DATA(insertOID=0 (1259reltriggers2102150-1tfsff));
441+
DATA(insertOID=0 (1259relhasrules1601160-1tfcff));
442+
DATA(insertOID=0 (1259relacl10340-1170-1ffiff));
441443
DATA(insertOID=0 (1259ctid2706-10-1ffiff));
442444
DATA(insertOID=0 (1259oid2604-20-1tfiff));
443445
DATA(insertOID=0 (1259xmin2804-30-1ffiff));
@@ -526,6 +528,32 @@ DATA(insert OID = 0 ( 1216 tmin 702 0 4 -9 0 -1 t f i f f));
526528
DATA(insertOID=0 (1216tmax70204-100-1tfiff));
527529
DATA(insertOID=0 (1216vtype1801-110-1tfcff));
528530

531+
/* ----------------
532+
*pg_trigger
533+
* ----------------
534+
*/
535+
DATA(insertOID=0 (1219tgrelid260410-1tfiff));
536+
DATA(insertOID=0 (1219tgname190NAMEDATALEN20-1ffiff));
537+
DATA(insertOID=0 (1219tgfunc190NAMEDATALEN30-1ffiff));
538+
DATA(insertOID=0 (1219tglang260440-1tfiff));
539+
DATA(insertOID=0 (1219tgtype210250-1tfsff));
540+
DATA(insertOID=0 (1219tgnargs210260-1tfsff));
541+
DATA(insertOID=0 (1219tgattr2201670-1ffiff));
542+
DATA(insertOID=0 (1219tgtext170-180-1ffiff));
543+
DATA(insertOID=0 (1219tgargs170-190-1ffiff));
544+
DATA(insertOID=0 (1219tgwhen250-1100-1ffiff));
545+
DATA(insertOID=0 (1219ctid2706-10-1ffiff));
546+
DATA(insertOID=0 (1219oid2604-20-1tfiff));
547+
DATA(insertOID=0 (1219xmin2804-30-1ffiff));
548+
DATA(insertOID=0 (1219cmin2902-40-1tfsff));
549+
DATA(insertOID=0 (1219xmax2804-50-1ffiff));
550+
DATA(insertOID=0 (1219cmax2902-60-1tfsff));
551+
DATA(insertOID=0 (1219chain2706-70-1ffiff));
552+
DATA(insertOID=0 (1219anchor2706-80-1ffiff));
553+
DATA(insertOID=0 (1219tmin70204-90-1tfiff));
554+
DATA(insertOID=0 (1219tmax70204-100-1tfiff));
555+
DATA(insertOID=0 (1219vtype1801-110-1tfcff));
556+
529557
/* ----------------
530558
*pg_hosts - this relation is used to store host based authentication
531559
* info

‎src/include/catalog/pg_class.h

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
* Copyright (c) 1994, Regents of the University of California
99
*
10-
* $Id: pg_class.h,v 1.7 1997/08/22 04:04:19 vadim Exp $
10+
* $Id: pg_class.h,v 1.8 1997/08/31 09:55:22 vadim Exp $
1111
*
1212
* NOTES
1313
* ``pg_relation'' is being replaced by ``pg_class''. currently
@@ -70,6 +70,7 @@ CATALOG(pg_class) BOOTSTRAP {
7070
*/
7171
int2relsmgr;
7272
int2relchecks;/* # of CHECK constraints*/
73+
int2reltriggers;/* # of TRIGGERs*/
7374
boolrelhasrules;
7475
aclitemrelacl[1];/* this is here for the catalog*/
7576
} FormData_pg_class;
@@ -95,8 +96,8 @@ typedef FormData_pg_class*Form_pg_class;
9596
*relacl field.
9697
* ----------------
9798
*/
98-
#defineNatts_pg_class_fixed16
99-
#defineNatts_pg_class17
99+
#defineNatts_pg_class_fixed17
100+
#defineNatts_pg_class18
100101
#defineAnum_pg_class_relname1
101102
#defineAnum_pg_class_reltype2
102103
#defineAnum_pg_class_relowner3
@@ -112,31 +113,33 @@ typedef FormData_pg_class*Form_pg_class;
112113
#defineAnum_pg_class_relnatts13
113114
#defineAnum_pg_class_relsmgr14
114115
#defineAnum_pg_class_relchecks15
115-
#defineAnum_pg_class_relhasrules16
116-
#defineAnum_pg_class_relacl17
116+
#defineAnum_pg_class_reltriggers16
117+
#defineAnum_pg_class_relhasrules17
118+
#defineAnum_pg_class_relacl18
117119

118120
/* ----------------
119121
*initial contents of pg_class
120122
* ----------------
121123
*/
122124

123-
DATA(insert OID =1247 ( pg_type71 PGUID00000 f f r n1600 f _null_ ));
124-
DATA(insert OID =1249 ( pg_attribute75 PGUID00000 f f r n1600 f _null_ ));
125-
DATA(insert OID =1251 ( pg_demon76 PGUID00000 f t r n400 f _null_ ));
126-
DATA(insert OID =1253 ( pg_magic80 PGUID00000 f t r n200 f _null_ ));
127-
DATA(insert OID =1255 ( pg_proc81 PGUID00000 f f r n1600 f _null_ ));
128-
DATA(insert OID =1257 ( pg_server82 PGUID00000 f t r n300 f _null_ ));
129-
DATA(insert OID =1259 ( pg_class83 PGUID00000 f f r n1800 f _null_ ));
130-
DATA(insert OID =1260 ( pg_user86 PGUID00000 f t r n600 f _null_ ));
131-
DATA(insert OID =1261 ( pg_group87 PGUID00000 f t s n300 f _null_ ));
132-
DATA(insert OID =1262 ( pg_database88 PGUID00000 f t r n300 f _null_ ));
133-
DATA(insert OID =1263 ( pg_defaults89 PGUID00000 f t r n200 f _null_ ));
134-
DATA(insert OID =1264 ( pg_variable90 PGUID00000 f t s n200 f _null_ ));
135-
DATA(insert OID =1269 ( pg_log99 PGUID00000 f t s n100 f _null_ ));
136-
DATA(insert OID =1271 ( pg_time100 PGUID00000 f t s n100 f _null_ ));
137-
DATA(insert OID =1273 ( pg_hosts101 PGUID00000 f t s n300 f _null_ ));
138-
DATA(insert OID =1215 ( pg_attrdef109 PGUID00000 t t r n400 f _null_ ));
139-
DATA(insert OID =1216 ( pg_relcheck110 PGUID00000 t t r n400 f _null_ ));
125+
DATA(insert OID =1247 ( pg_type71 PGUID00000 f f r n16000 f _null_ ));
126+
DATA(insert OID =1249 ( pg_attribute75 PGUID00000 f f r n16000 f _null_ ));
127+
DATA(insert OID =1251 ( pg_demon76 PGUID00000 f t r n4000 f _null_ ));
128+
DATA(insert OID =1253 ( pg_magic80 PGUID00000 f t r n2000 f _null_ ));
129+
DATA(insert OID =1255 ( pg_proc81 PGUID00000 f f r n16000 f _null_ ));
130+
DATA(insert OID =1257 ( pg_server82 PGUID00000 f t r n3000 f _null_ ));
131+
DATA(insert OID =1259 ( pg_class83 PGUID00000 f f r n18000 f _null_ ));
132+
DATA(insert OID =1260 ( pg_user86 PGUID00000 f t r n6000 f _null_ ));
133+
DATA(insert OID =1261 ( pg_group87 PGUID00000 f t s n3000 f _null_ ));
134+
DATA(insert OID =1262 ( pg_database88 PGUID00000 f t r n3000 f _null_ ));
135+
DATA(insert OID =1263 ( pg_defaults89 PGUID00000 f t r n2000 f _null_ ));
136+
DATA(insert OID =1264 ( pg_variable90 PGUID00000 f t s n2000 f _null_ ));
137+
DATA(insert OID =1269 ( pg_log99 PGUID00000 f t s n1000 f _null_ ));
138+
DATA(insert OID =1271 ( pg_time100 PGUID00000 f t s n1000 f _null_ ));
139+
DATA(insert OID =1273 ( pg_hosts101 PGUID00000 f t s n3000 f _null_ ));
140+
DATA(insert OID =1215 ( pg_attrdef109 PGUID00000 t t r n4000 f _null_ ));
141+
DATA(insert OID =1216 ( pg_relcheck110 PGUID00000 t t r n4000 f _null_ ));
142+
DATA(insert OID =1219 ( pg_trigger111 PGUID00000 t t r n10000 f _null_ ));
140143

141144
#defineRelOid_pg_type1247
142145
#defineRelOid_pg_demon1251
@@ -155,6 +158,7 @@ DATA(insert OID = 1216 ( pg_relcheck 110 PGUID 0 0 0 0 0 t t r n 4 0 0 f _n
155158
#defineRelOid_pg_hosts1273
156159
#defineRelOid_pg_attrdef1215
157160
#defineRelOid_pg_relcheck1216
161+
#defineRelOid_pg_trigger1219
158162

159163
#defineMAX_SYSTEM_RELOID1273/* this does not seem to be used*/
160164
/* anywhere*/

‎src/include/catalog/pg_trigger.h

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
/*-------------------------------------------------------------------------
2+
*
3+
* pg_trigger.h--
4+
*
5+
*
6+
* Copyright (c) 1994, Regents of the University of California
7+
*
8+
* NOTES
9+
* the genbki.sh script reads this file and generates .bki
10+
* information from the DATA() statements.
11+
*
12+
*-------------------------------------------------------------------------
13+
*/
14+
#ifndefPG_TRIGGER_H
15+
#definePG_TRIGGER_H
16+
17+
/* ----------------
18+
*postgres.h contains the system type definintions and the
19+
*CATALOG(), BOOTSTRAP and DATA() sugar words so this file
20+
*can be read by both genbki.sh and the C compiler.
21+
* ----------------
22+
*/
23+
24+
/* ----------------
25+
*pg_trigger definition. cpp turns this into
26+
*typedef struct FormData_pg_trigger
27+
* ----------------
28+
*/
29+
CATALOG(pg_trigger)BOOTSTRAP {
30+
Oidtgrelid;/* triggered relation */
31+
NameDatatgname;/* trigger' name */
32+
NameDatatgfunc;/* name of function to be called */
33+
Oidtglang;/* Language. Only ClanguageId currently */
34+
int2tgtype;/* BEFORE/AFTER UPDATE/DELETE/INSERT ROW/STATEMENT */
35+
int2tgnargs;/* # of extra arguments in tgargs */
36+
int28tgattr;/* UPDATE of attr1, attr2 ... (NI) */
37+
byteatgtext;/* currently, where to find .so */
38+
byteatgargs;/* first\000second\000tgnargs\000 */
39+
texttgwhen;/* when (a > 10 or b = 3) fire trigger (NI) */
40+
}FormData_pg_trigger;
41+
42+
/* ----------------
43+
*Form_pg_trigger corresponds to a pointer to a tuple with
44+
*the format of pg_trigger relation.
45+
* ----------------
46+
*/
47+
typedefFormData_pg_trigger*Form_pg_trigger;
48+
49+
/* ----------------
50+
*compiler constants for pg_trigger
51+
* ----------------
52+
*/
53+
#defineNatts_pg_trigger10
54+
#defineAnum_pg_trigger_tgrelid1
55+
#defineAnum_pg_trigger_tgname2
56+
#defineAnum_pg_trigger_tgfunc3
57+
#defineAnum_pg_trigger_tglang4
58+
#defineAnum_pg_trigger_tgtype5
59+
#defineAnum_pg_trigger_tgnargs6
60+
#defineAnum_pg_trigger_tgattr7
61+
#defineAnum_pg_trigger_tgtext8
62+
#defineAnum_pg_trigger_tgargs9
63+
#defineAnum_pg_trigger_tgwhen10
64+
65+
#defineTRIGGER_TYPE_ROW(1 << 0)
66+
#defineTRIGGER_TYPE_BEFORE(1 << 1)
67+
#defineTRIGGER_TYPE_INSERT(1 << 2)
68+
#defineTRIGGER_TYPE_DELETE(1 << 3)
69+
#defineTRIGGER_TYPE_UPDATE(1 << 4)
70+
71+
#defineTRIGGER_CLEAR_TYPE(type)(type = 0)
72+
73+
#defineTRIGGER_SETT_ROW(type)(type |= TRIGGER_TYPE_ROW)
74+
#defineTRIGGER_SETT_BEFORE(type)(type |= TRIGGER_TYPE_BEFORE)
75+
#defineTRIGGER_SETT_INSERT(type)(type |= TRIGGER_TYPE_INSERT)
76+
#defineTRIGGER_SETT_DELETE(type)(type |= TRIGGER_TYPE_DELETE)
77+
#defineTRIGGER_SETT_UPDATE(type)(type |= TRIGGER_TYPE_UPDATE)
78+
79+
#defineTRIGGER_FOR_ROW(type)(type & TRIGGER_TYPE_ROW)
80+
#defineTRIGGER_FOR_BEFORE(type)(type & TRIGGER_TYPE_BEFORE)
81+
#defineTRIGGER_FOR_INSERT(type)(type & TRIGGER_TYPE_INSERT)
82+
#defineTRIGGER_FOR_DELETE(type)(type & TRIGGER_TYPE_DELETE)
83+
#defineTRIGGER_FOR_UPDATE(type)(type & TRIGGER_TYPE_UPDATE)
84+
85+
#endif/* PG_TRIGGER_H */

‎src/include/catalog/pg_type.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
* Copyright (c) 1994, Regents of the University of California
99
*
10-
* $Id: pg_type.h,v 1.15 1997/08/22 00:02:19 momjian Exp $
10+
* $Id: pg_type.h,v 1.16 1997/08/31 09:55:24 vadim Exp $
1111
*
1212
* NOTES
1313
* the genbki.sh script reads this file and generates .bki
@@ -202,6 +202,7 @@ DATA(insert OID = 100 ( pg_time PGUID 1 1 t b t \054 1271 0 foo bar foo bar
202202
DATA(insertOID=101 (pg_hostsPGUID11tbt \05412730foobarfoobarc_null_));
203203
DATA(insertOID=109 (pg_attrdefPGUID11tbt \05412150foobarfoobarc_null_));
204204
DATA(insertOID=110 (pg_relcheckPGUID11tbt \05412160foobarfoobarc_null_));
205+
DATA(insertOID=111 (pg_triggerPGUID11tbt \05412190foobarfoobarc_null_));
205206

206207
/* OIDS 200 - 299 */
207208

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp