summaryrefslogtreecommitdiff
path: root/doc/src/sgml/ref/create_function.sgml
diff options
context:
space:
mode:
authorNoah Misch <noah@leadboat.com>2018-07-28 20:08:01 -0700
committerNoah Misch <noah@leadboat.com>2018-07-28 20:08:34 -0700
commit8c477a42eb9bdb91e7361645c3c343578000cb4a (patch)
treefbf3d18155f87755dd3891f5be5cedacd0a1a49b /doc/src/sgml/ref/create_function.sgml
parentf878781066f64a82238423cc81cdf1f8f75a013d (diff)
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 'doc/src/sgml/ref/create_function.sgml')
-rw-r--r--doc/src/sgml/ref/create_function.sgml14
1 files changed, 8 insertions, 6 deletions
diff --git a/doc/src/sgml/ref/create_function.sgml b/doc/src/sgml/ref/create_function.sgml
index af66de3409e..9b431effccf 100644
--- a/doc/src/sgml/ref/create_function.sgml
+++ b/doc/src/sgml/ref/create_function.sgml
@@ -480,8 +480,11 @@ CREATE [ OR REPLACE ] FUNCTION
file containing the dynamically loadable object, and
<replaceable class="parameter">link_symbol</replaceable> is the
function's link symbol, that is, the name of the function in the C
- language source code. If the link symbol is omitted, it is assumed
- to be the same as the name of the SQL function being defined.
+ language source code. If the link symbol is omitted, it is assumed to
+ be the same as the name of the SQL function being defined. The C names
+ of all functions must be different, so you must give overloaded C
+ functions different C names (for example, use the argument types as
+ part of the C names).
</para>
<para>
@@ -545,10 +548,9 @@ CREATE [ OR REPLACE ] FUNCTION
<productname>PostgreSQL</productname> allows function
<firstterm>overloading</firstterm>; that is, the same name can be
used for several different functions so long as they have distinct
- input argument types. However, the C names of all functions must be
- different, so you must give overloaded C functions different C
- names (for example, use the argument types as part of the C
- names).
+ input argument types. Whether or not you use it, this capability entails
+ security precautions when calling functions in databases where some users
+ mistrust other users; see <xref linkend="typeconv-func">.
</para>
<para>