diff options
Diffstat (limited to 'src/backend/utils/fmgr/fmgr.c')
-rw-r--r-- | src/backend/utils/fmgr/fmgr.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/backend/utils/fmgr/fmgr.c b/src/backend/utils/fmgr/fmgr.c index d05e4d2dd8f..a115a29da4c 100644 --- a/src/backend/utils/fmgr/fmgr.c +++ b/src/backend/utils/fmgr/fmgr.c @@ -1622,6 +1622,26 @@ FunctionCall9(FmgrInfo *flinfo, Datum arg1, Datum arg2, * do the fmgr_info() once and then use FunctionCallN(). */ Datum +OidFunctionCall0(Oid functionId) +{ + FmgrInfo flinfo; + FunctionCallInfoData fcinfo; + Datum result; + + fmgr_info(functionId, &flinfo); + + InitFunctionCallInfoData(fcinfo, &flinfo, 0, NULL, NULL); + + result = FunctionCallInvoke(&fcinfo); + + /* Check for null result, since caller is clearly not expecting one */ + if (fcinfo.isnull) + elog(ERROR, "function %u returned NULL", flinfo.fn_oid); + + return result; +} + +Datum OidFunctionCall1(Oid functionId, Datum arg1) { FmgrInfo flinfo; |