O PostgreSQL Documenta todas as suas funções C com uma interface "V1", mas elas não mostram o que obtêm,
PG_FUNCTION_INFO_V1(add_one);
Datum
add_one(PG_FUNCTION_ARGS)
{
int32 arg = PG_GETARG_INT32(0);
PG_RETURN_INT32(arg + 1);
}
No exemplo acima, o que PG_FUNCTION_ARGS
declara a função para aceitar? Muitas funções V1 parecem ter um fcinfo
magicamente aparecendo na definição, eu estou supondo que é trazida aqui, mas o que é isso e algo mais é trazido com esta macro?
A definição real para isso está em
fmgr.h
,Este é um ponteiro para
FunctionCallInfoBaseData
E você pode ver a definição disso no mesmo arquivo ,