diff options
author | Noah Misch <noah@leadboat.com> | 2018-07-28 20:08:01 -0700 |
---|---|---|
committer | Noah Misch <noah@leadboat.com> | 2018-07-28 20:08:08 -0700 |
commit | a117c7a7b62f8978052b69e8e3bfdf8f8099a61d (patch) | |
tree | 6ea3a14339761f58ab221217c6e2046177f355e3 /src | |
parent | 9a513f8f9e87462ec63a9f08bcd2d4a7e1f6fa4d (diff) | |
download | postgresql-a117c7a7b62f8978052b69e8e3bfdf8f8099a61d.tar.gz postgresql-a117c7a7b62f8978052b69e8e3bfdf8f8099a61d.zip |
Document security implications of qualified names.
Commit 5770172cb0c9df9e6ce27c507b449557e5b45124 documented secure schema
usage, and that advice suffices for using unqualified names securely.
Document, in typeconv-func primarily, the additional issues that arise
with qualified names. Back-patch to 9.3 (all supported versions).
Reviewed by Jonathan S. Katz.
Discussion: https://postgr.es/m/20180721012446.GA1840594@rfd.leadboat.com
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/utils/adt/ruleutils.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c index a38aed2065f..5a61d2dac00 100644 --- a/src/backend/utils/adt/ruleutils.c +++ b/src/backend/utils/adt/ruleutils.c @@ -10761,16 +10761,11 @@ generate_function_name(Oid funcid, int nargs, List *argnames, Oid *argtypes, * Determine whether VARIADIC should be printed. We must do this first * since it affects the lookup rules in func_get_detail(). * - * Currently, we always print VARIADIC if the function has a merged - * variadic-array argument. Note that this is always the case for - * functions taking a VARIADIC argument type other than VARIADIC ANY. - * - * In principle, if VARIADIC wasn't originally specified and the array - * actual argument is deconstructable, we could print the array elements - * separately and not print VARIADIC, thus more nearly reproducing the - * original input. For the moment that seems like too much complication - * for the benefit, and anyway we do not know whether VARIADIC was - * originally specified if it's a non-ANY type. + * We always print VARIADIC if the function has a merged variadic-array + * argument. Note that this is always the case for functions taking a + * VARIADIC argument type other than VARIADIC ANY. If we omitted VARIADIC + * and printed the array elements as separate arguments, the call could + * match a newer non-VARIADIC function. */ if (use_variadic_p) { |