aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/commands/event_trigger.c3
-rw-r--r--src/backend/commands/foreigncmds.c3
-rw-r--r--src/backend/parser/parse_func.c6
-rw-r--r--src/backend/utils/adt/ruleutils.c3
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)