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

Commit9ba606c

Browse files
committed
Prototypes, definitions...
1 parent989ab6b commit9ba606c

File tree

2 files changed

+74
-31
lines changed

2 files changed

+74
-31
lines changed

‎src/include/commands/trigger.h

Lines changed: 37 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -13,35 +13,53 @@
1313
#include"access/htup.h"
1414
#include"utils/rel.h"
1515

16-
typedefuint32TriggerAction;
16+
typedefuint32TriggerEvent;
1717

18-
#defineTRIGGER_ACTION_INSERT0x00000000
19-
#defineTRIGGER_ACTION_DELETE0x00000001
20-
#defineTRIGGER_ACTION_UPDATE0x00000010
21-
#defineTRIGGER_ACTION_OPMASK0x00000011
22-
#defineTRIGGER_ACTION_ROW4
18+
typedefstructTriggerData {
19+
TriggerEventtg_event;
20+
Relationtg_relation;
21+
HeapTupletg_trigtuple;
22+
HeapTupletg_newtuple;
23+
Trigger*tg_trigger;
24+
}TriggerData;
2325

24-
#defineTRIGGER_FIRED_BY_INSERT (action)\
25-
(((TriggerAction) action & TRIGGER_ACTION_OPMASK) == \
26-
TRIGGER_ACTION_INSERT)
26+
externTriggerData*CurrentTriggerData;
2727

28-
#defineTRIGGER_FIRED_BY_DELETE (action)\
29-
(((TriggerAction) action & TRIGGER_ACTION_OPMASK) == \
30-
TRIGGER_ACTION_DELETE)
28+
#defineTRIGGER_EVENT_INSERT0x00000000
29+
#defineTRIGGER_EVENT_DELETE0x00000001
30+
#defineTRIGGER_EVENT_UPDATE0x00000002
31+
#defineTRIGGER_EVENT_OPMASK0x00000003
32+
#defineTRIGGER_EVENT_ROW0x00000004
33+
#defineTRIGGER_EVENT_BEFORE0x00000008
3134

32-
#defineTRIGGER_FIRED_BY_UPDATE (action)\
33-
(((TriggerAction) action &TRIGGER_ACTION_OPMASK) == \
34-
TRIGGER_ACTION_UPDATE)
35+
#defineTRIGGER_FIRED_BY_INSERT(event)\
36+
(((TriggerEvent) (event) &TRIGGER_EVENT_OPMASK) == \
37+
TRIGGER_EVENT_INSERT)
3538

36-
#defineTRIGGER_FIRED_FOR_ROW (action)\
37-
((TriggerAction) action & TRIGGER_ACTION_ROW)
39+
#defineTRIGGER_FIRED_BY_DELETE(event)\
40+
(((TriggerEvent) (event) & TRIGGER_EVENT_OPMASK) == \
41+
TRIGGER_EVENT_DELETE)
3842

39-
#defineTRIGGER_FIRED_FOR_STATEMENT (action)\
40-
(!TRIGGER_FIRED_FOR_ROW (action))
43+
#defineTRIGGER_FIRED_BY_UPDATE(event)\
44+
(((TriggerEvent) (event) & TRIGGER_EVENT_OPMASK) == \
45+
TRIGGER_EVENT_UPDATE)
46+
47+
#defineTRIGGER_FIRED_FOR_ROW(event)\
48+
((TriggerEvent) (event) & TRIGGER_EVENT_ROW)
49+
50+
#defineTRIGGER_FIRED_FOR_STATEMENT(event)\
51+
(!TRIGGER_FIRED_FOR_ROW (event))
52+
53+
#defineTRIGGER_FIRED_BEFORE(event)\
54+
((TriggerEvent) (event) & TRIGGER_EVENT_BEFORE)
55+
56+
#defineTRIGGER_FIRED_AFTER(event)\
57+
(!TRIGGER_FIRED_BEFORE (event))
4158

4259

4360
externvoidCreateTrigger (CreateTrigStmt*stmt);
4461
externvoidDropTrigger (DropTrigStmt*stmt);
62+
externvoidRelationRemoveTriggers (Relationrel);
4563

4664
externHeapTupleExecBRInsertTriggers (Relationrel,HeapTupletuple);
4765
externvoidExecARInsertTriggers (Relationrel,HeapTupletuple);

‎src/include/executor/spi.h

Lines changed: 37 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -46,24 +46,49 @@ typedef struct {
4646
#defineSPI_ERROR_OPUNKNOWN-3
4747
#defineSPI_ERROR_UNCONNECTED-4
4848
#defineSPI_ERROR_CURSOR-5
49-
#defineSPI_ERROR_TRANSACTION-6
49+
#defineSPI_ERROR_ARGUMENT-6
50+
#defineSPI_ERROR_PARAM-7
51+
#defineSPI_ERROR_TRANSACTION-8
52+
#defineSPI_ERROR_NOATTRIBUTE-9
53+
#defineSPI_ERROR_NOOUTFUNC-10
54+
#defineSPI_ERROR_TYPUNKNOWN-11
55+
#defineSPI_ERROR_NOENTRY-12
5056

51-
#defineSPI_OK_CONNECT0
52-
#defineSPI_OK_FINISH1
53-
#defineSPI_OK_FETCH2
54-
#defineSPI_OK_UTILITY3
55-
#defineSPI_OK_SELECT4
56-
#defineSPI_OK_SELINTO5
57-
#defineSPI_OK_INSERT6
58-
#defineSPI_OK_DELETE7
59-
#defineSPI_OK_UPDATE8
60-
#defineSPI_OK_CURSOR9
57+
#defineSPI_OK_CONNECT1
58+
#defineSPI_OK_FINISH2
59+
#defineSPI_OK_FETCH3
60+
#defineSPI_OK_UTILITY4
61+
#defineSPI_OK_SELECT5
62+
#defineSPI_OK_SELINTO6
63+
#defineSPI_OK_INSERT7
64+
#defineSPI_OK_DELETE8
65+
#defineSPI_OK_UPDATE9
66+
#defineSPI_OK_CURSOR10
67+
68+
#defineSPI_DSPACE_LOCAL0
69+
#defineSPI_DSPACE_XACT1
70+
#defineSPI_DSPACE_SESSION2
6171

6272
externuint32SPI_processed;
6373
externSPITupleTable*SPI_tuptable;
74+
externintSPI_error;
6475

65-
externintSPI_connect (void);
76+
externintSPI_connect (char*ident);
6677
externintSPI_finish (void);
6778
externintSPI_exec (char*src);
79+
externintSPI_execn (char*src,inttcount);
80+
externintSPI_execp (intpid,char**values,char*Nulls);
81+
externintSPI_prepare (char*src,intnargs,Oid*argtypes);
82+
externintSPI_expplan (intdspace,intstart,intcount);
83+
externintSPI_impplan (intdspace,intstart,intcount);
84+
externintSPI_expdata (intdspace,intcount,void**data,int*len);
85+
externintSPI_impdata (intdspace,intstart,intcount,void**data,int**len);
86+
87+
externintSPI_fnumber (TupleDesctupdesc,char*fname);
88+
externchar*SPI_getvalue (HeapTupletuple,TupleDesctupdesc,intfnumber);
89+
externchar*SPI_getbinval (HeapTupletuple,TupleDesctupdesc,intfnumber,bool*isnull);
90+
externchar*SPI_gettype (TupleDesctupdesc,intfnumber);
91+
externOidSPI_gettypeid (TupleDesctupdesc,intfnumber);
92+
externchar*SPI_getrelname (Relationrel);
6893

6994
#endif/* SPI_H */

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp