Database Reference
In-Depth Information
&funcctx->tuple_desc)
!= TYPEFUNC_COMPOSITE)
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("function returning
record called in context "
"that cannot accept
type record")));
BlessTupleDesc(funcctx->tuple_desc);
// restore memory context
MemoryContextSwitchTo(oldcontext);
}
funcctx = SRF_PERCALL_SETUP() ;
args = funcctx->user_fctx;
call_nr = funcctx->call_cntr;
if (call_nr < funcctx->max_calls) {
HeapTuple rettuple;
Datum retvals[4];
bool retnulls[4];
for(i=0;i<3;i++){
retvals[i] =
Int32GetDatum(args->argvals[ips[call_nr][i]]);
retnulls[i] =
args->argnulls[ips[call_nr][i]];
}
retvals[3] =
Int32GetDatum(args->argvals[ips[call_nr][0]]
* args->argvals[ips[call_nr][1]]
+ args->argvals[ips[call_nr][2]]);
retnulls[3] = args->anyargnull;
rettuple =
Search WWH ::




Custom Search