2
我正在使用Postgresql 9.2安裝,並試圖獲得擴展(我編程)運行。Postgresql:在C中定義自己的類型
該代碼編譯,我可以加載到Postgresql;但每次我嘗試執行INSERT
時,都會停止與數據庫的連接。我想這是因爲我的in
功能不知何故被破壞。
首先到的typedef:
typedef struct tphys {
char length[4];
char data[1];
} tphys;
正如你看到的,我有一個數據類型,它是指在尺寸上不受限制。現在到了in
-code:
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);
}
我一直使用此代碼很長一段時間,我真的不知道哪裏出錯。你可能會看到它嗎?
謝謝!這工作! – navige 2013-02-26 09:35:22