Postgresql:C中自己类型的定义

时间:2013-02-25 18:27:43

标签: c postgresql

我正在使用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);
}

我一直在尝试使用这段代码,我真的不知道错误在哪里。你也许看到了吗?

0 个答案:

没有答案