Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
9ba606cd
G
Gpdb
项目概览
Greenplum
/
Gpdb
通知
7
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
Gpdb
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
9ba606cd
编写于
9月 04, 1997
作者:
V
Vadim B. Mikheev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Prototypes, definitions...
上级
989ab6b1
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
74 addition
and
31 deletion
+74
-31
src/include/commands/trigger.h
src/include/commands/trigger.h
+37
-19
src/include/executor/spi.h
src/include/executor/spi.h
+37
-12
未找到文件。
src/include/commands/trigger.h
浏览文件 @
9ba606cd
...
...
@@ -13,35 +13,53 @@
#include "access/htup.h"
#include "utils/rel.h"
typedef
uint32
Trigger
Action
;
typedef
uint32
Trigger
Event
;
#define TRIGGER_ACTION_INSERT 0x00000000
#define TRIGGER_ACTION_DELETE 0x00000001
#define TRIGGER_ACTION_UPDATE 0x00000010
#define TRIGGER_ACTION_OPMASK 0x00000011
#define TRIGGER_ACTION_ROW 4
typedef
struct
TriggerData
{
TriggerEvent
tg_event
;
Relation
tg_relation
;
HeapTuple
tg_trigtuple
;
HeapTuple
tg_newtuple
;
Trigger
*
tg_trigger
;
}
TriggerData
;
#define TRIGGER_FIRED_BY_INSERT (action) \
(((TriggerAction) action & TRIGGER_ACTION_OPMASK) == \
TRIGGER_ACTION_INSERT)
extern
TriggerData
*
CurrentTriggerData
;
#define TRIGGER_FIRED_BY_DELETE (action) \
(((TriggerAction) action & TRIGGER_ACTION_OPMASK) == \
TRIGGER_ACTION_DELETE)
#define TRIGGER_EVENT_INSERT 0x00000000
#define TRIGGER_EVENT_DELETE 0x00000001
#define TRIGGER_EVENT_UPDATE 0x00000002
#define TRIGGER_EVENT_OPMASK 0x00000003
#define TRIGGER_EVENT_ROW 0x00000004
#define TRIGGER_EVENT_BEFORE 0x00000008
#define TRIGGER_FIRED_BY_
UPDATE (action
) \
(((Trigger
Action) action & TRIGGER_ACTION
_OPMASK) == \
TRIGGER_
ACTION_UPDATE
)
#define TRIGGER_FIRED_BY_
INSERT(event
) \
(((Trigger
Event) (event) & TRIGGER_EVENT
_OPMASK) == \
TRIGGER_
EVENT_INSERT
)
#define TRIGGER_FIRED_FOR_ROW (action) \
((TriggerAction) action & TRIGGER_ACTION_ROW)
#define TRIGGER_FIRED_BY_DELETE(event) \
(((TriggerEvent) (event) & TRIGGER_EVENT_OPMASK) == \
TRIGGER_EVENT_DELETE)
#define TRIGGER_FIRED_FOR_STATEMENT (action) \
(!TRIGGER_FIRED_FOR_ROW (action))
#define TRIGGER_FIRED_BY_UPDATE(event) \
(((TriggerEvent) (event) & TRIGGER_EVENT_OPMASK) == \
TRIGGER_EVENT_UPDATE)
#define TRIGGER_FIRED_FOR_ROW(event) \
((TriggerEvent) (event) & TRIGGER_EVENT_ROW)
#define TRIGGER_FIRED_FOR_STATEMENT(event) \
(!TRIGGER_FIRED_FOR_ROW (event))
#define TRIGGER_FIRED_BEFORE(event) \
((TriggerEvent) (event) & TRIGGER_EVENT_BEFORE)
#define TRIGGER_FIRED_AFTER(event) \
(!TRIGGER_FIRED_BEFORE (event))
extern
void
CreateTrigger
(
CreateTrigStmt
*
stmt
);
extern
void
DropTrigger
(
DropTrigStmt
*
stmt
);
extern
void
RelationRemoveTriggers
(
Relation
rel
);
extern
HeapTuple
ExecBRInsertTriggers
(
Relation
rel
,
HeapTuple
tuple
);
extern
void
ExecARInsertTriggers
(
Relation
rel
,
HeapTuple
tuple
);
...
...
src/include/executor/spi.h
浏览文件 @
9ba606cd
...
...
@@ -46,24 +46,49 @@ typedef struct {
#define SPI_ERROR_OPUNKNOWN -3
#define SPI_ERROR_UNCONNECTED -4
#define SPI_ERROR_CURSOR -5
#define SPI_ERROR_TRANSACTION -6
#define SPI_ERROR_ARGUMENT -6
#define SPI_ERROR_PARAM -7
#define SPI_ERROR_TRANSACTION -8
#define SPI_ERROR_NOATTRIBUTE -9
#define SPI_ERROR_NOOUTFUNC -10
#define SPI_ERROR_TYPUNKNOWN -11
#define SPI_ERROR_NOENTRY -12
#define SPI_OK_CONNECT 0
#define SPI_OK_FINISH 1
#define SPI_OK_FETCH 2
#define SPI_OK_UTILITY 3
#define SPI_OK_SELECT 4
#define SPI_OK_SELINTO 5
#define SPI_OK_INSERT 6
#define SPI_OK_DELETE 7
#define SPI_OK_UPDATE 8
#define SPI_OK_CURSOR 9
#define SPI_OK_CONNECT 1
#define SPI_OK_FINISH 2
#define SPI_OK_FETCH 3
#define SPI_OK_UTILITY 4
#define SPI_OK_SELECT 5
#define SPI_OK_SELINTO 6
#define SPI_OK_INSERT 7
#define SPI_OK_DELETE 8
#define SPI_OK_UPDATE 9
#define SPI_OK_CURSOR 10
#define SPI_DSPACE_LOCAL 0
#define SPI_DSPACE_XACT 1
#define SPI_DSPACE_SESSION 2
extern
uint32
SPI_processed
;
extern
SPITupleTable
*
SPI_tuptable
;
extern
int
SPI_error
;
extern
int
SPI_connect
(
void
);
extern
int
SPI_connect
(
char
*
ident
);
extern
int
SPI_finish
(
void
);
extern
int
SPI_exec
(
char
*
src
);
extern
int
SPI_execn
(
char
*
src
,
int
tcount
);
extern
int
SPI_execp
(
int
pid
,
char
**
values
,
char
*
Nulls
);
extern
int
SPI_prepare
(
char
*
src
,
int
nargs
,
Oid
*
argtypes
);
extern
int
SPI_expplan
(
int
dspace
,
int
start
,
int
count
);
extern
int
SPI_impplan
(
int
dspace
,
int
start
,
int
count
);
extern
int
SPI_expdata
(
int
dspace
,
int
count
,
void
**
data
,
int
*
len
);
extern
int
SPI_impdata
(
int
dspace
,
int
start
,
int
count
,
void
**
data
,
int
**
len
);
extern
int
SPI_fnumber
(
TupleDesc
tupdesc
,
char
*
fname
);
extern
char
*
SPI_getvalue
(
HeapTuple
tuple
,
TupleDesc
tupdesc
,
int
fnumber
);
extern
char
*
SPI_getbinval
(
HeapTuple
tuple
,
TupleDesc
tupdesc
,
int
fnumber
,
bool
*
isnull
);
extern
char
*
SPI_gettype
(
TupleDesc
tupdesc
,
int
fnumber
);
extern
Oid
SPI_gettypeid
(
TupleDesc
tupdesc
,
int
fnumber
);
extern
char
*
SPI_getrelname
(
Relation
rel
);
#endif
/* SPI_H */
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录