aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/ruleutils.c
diff options
context:
space:
mode:
authorAndrew Dunstan <andrew@dunslane.net>2013-07-18 11:52:12 -0400
committerAndrew Dunstan <andrew@dunslane.net>2013-07-18 11:52:12 -0400
commitd26888bc4d1e539a82f21382b0000fe5bbf889d9 (patch)
tree45971c200f11e8b55af421cdadf012b4071f8ce1 /src/backend/utils/adt/ruleutils.c
parent405a468b02dd80a069b95c4eb9838cb6a562eddd (diff)
downloadpostgresql-d26888bc4d1e539a82f21382b0000fe5bbf889d9.tar.gz
postgresql-d26888bc4d1e539a82f21382b0000fe5bbf889d9.zip
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.
Diffstat (limited to 'src/backend/utils/adt/ruleutils.c')
-rw-r--r--src/backend/utils/adt/ruleutils.c4
1 files changed, 3 insertions, 1 deletions
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) &&