我是靠谱客的博主 悦耳身影,最近开发中收集的这篇文章主要介绍c语言触发器作用,用C编写事件触发器函数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本节描述事件触发器函数接口的底层细节。只有在用C编写事件触发器函数的时候才会需要这些信息。

如果你使用一种高级语言,那么这些细节已经为你处理了。在大多数情况下,

应该在用C编写事件触发器之前考虑用过程语言。每一个过程语言的文档解释了如何用那种语言编写一个事件触发器。

事件触发器函数必须使用"version 1"函数管理接口。

当通过事件触发器管理调用一个函数的时候,并不传递任何正规参数,而是传递一个

"context"指针指向EventTriggerData结构。

C函数可以检查它们是从事件触发器管理调用还是通过执行宏:CALLED_AS_EVENT_TRIGGER(fcinfo)

扩展到:((fcinfo)->context != NULL && IsA((fcinfo)->context, EventTriggerData))

如果返回真,那么传递fcinfo->context到类型EventTriggerData *

是安全的,并且利用指向的EventTriggerData结构。

函数必须不改变EventTriggerData结构或它指向的任何数据。

struct EventTriggerData是在

commands/event_trigger.h里定义的:typedef struct EventTriggerData

{

NodeTag type;

const char *event; /* event name */

Node *parsetree; /* parse tree */

const char *tag; /* command tag */

} EventTriggerData;

成员定义如下:

type总是T_EventTriggerData。event描述了函数调用的事件,是"ddl_command_start", "ddl_command_end",

"sql_drop"之一。参阅第 37.1 节获得这些事件的含义。parsetree命令的分析树的一个指针。检查PostgreSQL源代码详情。分析树结构改变时不会有通知。tag命令标签和事件触发器正在运行的事件有关,例如"CREATE FUNCTION"。

一个事件触发器函数必须返回一个NULL指针(不是

SQL null值,也就是,不要设置isNull为真)。

最后

以上就是悦耳身影为你收集整理的c语言触发器作用,用C编写事件触发器函数的全部内容,希望文章能够帮你解决c语言触发器作用,用C编写事件触发器函数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部