PostgreSQL 9.1.0。操作系统 Ubuntu 11.10。编译器 gcc 4.6.1
这是我的桌子:
CREATE TABLE ttest
(
x integer,
str text
)
WITH (
OIDS=FALSE
);
ALTER TABLE ttest OWNER TO postgres;
CREATE TRIGGER tb
BEFORE INSERT
ON ttest
FOR EACH ROW
EXECUTE PROCEDURE out_trig();
out_trig 是 C 函数。
现在我试图从插入的每一行中获取数据。这是代码:
if (TRIGGER_FIRED_BY_INSERT(trigdata->tg_event))
{
rettuple = trigdata->tg_trigtuple;
bool isnull = false;
uint32 x=rettuple->t_len;
int64 f;
f = (int64) GetAttributeByNum(rettuple->t_data, 1, &isnull);//error here
elog(INFO,"len of tuple: %d",x);
elog(INFO,"first column being inserted x: %d",f);
}
我收到错误:记录类型尚未注册
SQL 状态:42809
我做错了什么以及如何正确做?