diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/commands/event_trigger.c | 3 | ||||
-rw-r--r-- | src/backend/commands/foreigncmds.c | 3 | ||||
-rw-r--r-- | src/backend/parser/parse_func.c | 6 | ||||
-rw-r--r-- | src/backend/utils/adt/ruleutils.c | 3 |
4 files changed, 12 insertions, 3 deletions
diff --git a/src/backend/commands/event_trigger.c b/src/backend/commands/event_trigger.c index cc10c5eb1df..bf40881037c 100644 --- a/src/backend/commands/event_trigger.c +++ b/src/backend/commands/event_trigger.c @@ -165,6 +165,7 @@ CreateEventTrigger(CreateEventTrigStmt *stmt) HeapTuple tuple; Oid funcoid; Oid funcrettype; + Oid fargtypes[1]; /* dummy */ Oid evtowner = GetUserId(); ListCell *lc; List *tags = NULL; @@ -230,7 +231,7 @@ CreateEventTrigger(CreateEventTrigStmt *stmt) stmt->trigname))); /* Find and validate the trigger function. */ - funcoid = LookupFuncName(stmt->funcname, 0, NULL, false); + funcoid = LookupFuncName(stmt->funcname, 0, fargtypes, false); funcrettype = get_func_rettype(funcoid); if (funcrettype != EVTTRIGGEROID) ereport(ERROR, diff --git a/src/backend/commands/foreigncmds.c b/src/backend/commands/foreigncmds.c index 3b85c2c017e..cc912b2a790 100644 --- a/src/backend/commands/foreigncmds.c +++ b/src/backend/commands/foreigncmds.c @@ -474,12 +474,13 @@ static Oid lookup_fdw_handler_func(DefElem *handler) { Oid handlerOid; + Oid funcargtypes[1]; /* dummy */ if (handler == NULL || handler->arg == NULL) return InvalidOid; /* handlers have no arguments */ - handlerOid = LookupFuncName((List *) handler->arg, 0, NULL, false); + handlerOid = LookupFuncName((List *) handler->arg, 0, funcargtypes, false); /* check that handler has correct return type */ if (get_func_rettype(handlerOid) != FDW_HANDLEROID) diff --git a/src/backend/parser/parse_func.c b/src/backend/parser/parse_func.c index fa9761bac31..430baff1165 100644 --- a/src/backend/parser/parse_func.c +++ b/src/backend/parser/parse_func.c @@ -1415,6 +1415,9 @@ func_get_detail(List *funcname, FuncCandidateList raw_candidates; FuncCandidateList best_candidate; + /* Passing NULL for argtypes is no longer allowed */ + Assert(argtypes); + /* initialize output arguments to silence compiler warnings */ *funcid = InvalidOid; *rettype = InvalidOid; @@ -2043,6 +2046,9 @@ LookupFuncName(List *funcname, int nargs, const Oid *argtypes, bool noError) { FuncCandidateList clist; + /* Passing NULL for argtypes is no longer allowed */ + Assert(argtypes); + clist = FuncnameGetCandidates(funcname, nargs, NIL, false, false, noError); while (clist) diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c index e316951cf3f..2cd4b62701f 100644 --- a/src/backend/utils/adt/ruleutils.c +++ b/src/backend/utils/adt/ruleutils.c @@ -718,6 +718,7 @@ pg_get_triggerdef_worker(Oid trigid, bool pretty) SysScanDesc tgscan; int findx = 0; char *tgname; + Oid argtypes[1]; /* dummy */ Datum value; bool isnull; @@ -893,7 +894,7 @@ pg_get_triggerdef_worker(Oid trigid, bool pretty) appendStringInfo(&buf, "EXECUTE PROCEDURE %s(", generate_function_name(trigrec->tgfoid, 0, - NIL, NULL, + NIL, argtypes, false, NULL, EXPR_KIND_NONE)); if (trigrec->tgnargs > 0) |