我正在使用Postgresql 9.2安装,而我正在尝试运行扩展程序(我编程)。
此代码编译,我可以将其加载到Postgresql中;但每次我尝试INSERT
时,与DB的连接都会停止。我想这是因为我的in
- 函数以某种方式被破坏了。
首先到typedef:
typedef struct tphys {
char length[4];
char data[1];
} tphys;
如您所见,我的数据类型无限大。现在转到in
- 代码:
PG_FUNCTION_INFO_V1(tphys_data_in);
Datum
tphys_data_in(PG_FUNCTION_ARGS)
{
char *in = PG_GETARG_CSTRING(0);
tphys *dest = (tphys *) palloc(VARHDRSZ + VARSIZE(in));
SET VARSIZE(dest, VARHDRSZ + VARSIZE(in));
memcpy(VARDATA(dest), in, VARSIZE(in));
PG_RETURN_POINTER(dest);
}
我一直在尝试使用这段代码,我真的不知道错误在哪里。你也许看到了吗?