aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/parser/parse_func.c7
-rw-r--r--src/backend/utils/adt/ruleutils.c3
2 files changed, 4 insertions, 6 deletions
diff --git a/src/backend/parser/parse_func.c b/src/backend/parser/parse_func.c
index 9d9efc2cc24..d9c6dc19018 100644
--- a/src/backend/parser/parse_func.c
+++ b/src/backend/parser/parse_func.c
@@ -1397,9 +1397,6 @@ 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;
@@ -1423,7 +1420,9 @@ func_get_detail(List *funcname,
best_candidate != NULL;
best_candidate = best_candidate->next)
{
- if (memcmp(argtypes, best_candidate->args, nargs * sizeof(Oid)) == 0)
+ /* if nargs==0, argtypes can be null; don't pass that to memcmp */
+ if (nargs == 0 ||
+ memcmp(argtypes, best_candidate->args, nargs * sizeof(Oid)) == 0)
break;
}
diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c
index c1de869c521..4c83cae5e92 100644
--- a/src/backend/utils/adt/ruleutils.c
+++ b/src/backend/utils/adt/ruleutils.c
@@ -833,7 +833,6 @@ pg_get_triggerdef_worker(Oid trigid, bool pretty)
char *tgname;
char *tgoldtable;
char *tgnewtable;
- Oid argtypes[1]; /* dummy */
Datum value;
bool isnull;
@@ -1045,7 +1044,7 @@ pg_get_triggerdef_worker(Oid trigid, bool pretty)
appendStringInfo(&buf, "EXECUTE FUNCTION %s(",
generate_function_name(trigrec->tgfoid, 0,
- NIL, argtypes,
+ NIL, NULL,
false, NULL, EXPR_KIND_NONE));
if (trigrec->tgnargs > 0)