PostgreSQL 用“V1”接口记录他们所有的 C 函数,但他们实际上并没有显示他们得到了什么,
PG_FUNCTION_INFO_V1(add_one);
Datum
add_one(PG_FUNCTION_ARGS)
{
int32 arg = PG_GETARG_INT32(0);
PG_RETURN_INT32(arg + 1);
}
在上面PG_FUNCTION_ARGS
声明要接受的函数是什么?许多 V1 函数似乎fcinfo
神奇地出现在定义中,我猜它是在这里引入的,但它是什么,这个宏还引入了其他任何东西吗?
fmgr.h
对此的实际定义是这是一个指向
FunctionCallInfoBaseData
你可以在同一个文件中看到它的定义,