From d26888bc4d1e539a82f21382b0000fe5bbf889d9 Mon Sep 17 00:00:00 2001 From: Andrew Dunstan Date: Thu, 18 Jul 2013 11:52:12 -0400 Subject: Move checking an explicit VARIADIC "any" argument into the parser. This is more efficient and simpler . It does mean that an untyped NULL can no longer be used in such cases, which should be mentioned in Release Notes, but doesn't seem a terrible loss. The workaround is to cast the NULL to some array type. Pavel Stehule, reviewed by Jeevan Chalke. --- src/backend/utils/adt/ruleutils.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/backend/utils/adt/ruleutils.c') diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c index 976bc98e375..40b565a11d6 100644 --- a/src/backend/utils/adt/ruleutils.c +++ b/src/backend/utils/adt/ruleutils.c @@ -8584,6 +8584,7 @@ generate_function_name(Oid funcid, int nargs, List *argnames, Oid *argtypes, Oid p_rettype; bool p_retset; int p_nvargs; + Oid p_vatype; Oid *p_true_typeids; proctup = SearchSysCache1(PROCOID, ObjectIdGetDatum(funcid)); @@ -8634,7 +8635,8 @@ generate_function_name(Oid funcid, int nargs, List *argnames, Oid *argtypes, NIL, argnames, nargs, argtypes, !use_variadic, true, &p_funcid, &p_rettype, - &p_retset, &p_nvargs, &p_true_typeids, NULL); + &p_retset, &p_nvargs, &p_vatype, + &p_true_typeids, NULL); if ((p_result == FUNCDETAIL_NORMAL || p_result == FUNCDETAIL_AGGREGATE || p_result == FUNCDETAIL_WINDOWFUNC) && -- cgit v1.2.3