On Mon, Jul 23, 2018 at 09:14:48AM +0000, PG Doc comments form wrote: > The following documentation comment has been logged on the website: > > Page: https://www.postgresql.org/docs/10/static/sql-prepare.html > Description: > > Background can be found on the bugs list (pgsql-bug #15289). It was > explained that when a prepared statement parameter needs to have its type > inferred then, should the parameter be used more than once, only the first > use is considered. (The example in that report is that the type of $1 can be > inferred from "($1 = col) or ($1 is null)" but not from "($1 is null) or ($1 > = col)".) > > The documentation as it stands says only that the parameter's type is > inferred from the context in which it is used. The "first use only" proviso > is not mentioned (hence "context" isn't so broad as to consist of all of the > expressions in which the parameter appears).
I have developed the attached patch to cover what you found. -- Bruce Momjian <br...@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + As you are, so once was I. As I am, so you will be. + + Ancient Roman grave inscription +
diff --git a/doc/src/sgml/ref/prepare.sgml b/doc/src/sgml/ref/prepare.sgml index 704fb5e..4fe9ab7 100644 --- a/doc/src/sgml/ref/prepare.sgml +++ b/doc/src/sgml/ref/prepare.sgml @@ -52,7 +52,7 @@ PREPARE <replaceable class="parameter">name</replaceable> [ ( <replaceable class parameter data types can optionally be specified. When a parameter's data type is not specified or is declared as <literal>unknown</literal>, the type is inferred from the context - in which the parameter is used (if possible). When executing the + in which the parameter is first used (if possible). When executing the statement, specify the actual values for these parameters in the <command>EXECUTE</command> statement. Refer to <xref linkend="sql-execute"/> for more @@ -104,7 +104,7 @@ PREPARE <replaceable class="parameter">name</replaceable> [ ( <replaceable class The data type of a parameter to the prepared statement. If the data type of a particular parameter is unspecified or is specified as <literal>unknown</literal>, it will be inferred - from the context in which the parameter is used. To refer to the + from the context in which the parameter is first used. To refer to the parameters in the prepared statement itself, use <literal>$1</literal>, <literal>$2</literal>, etc. </para>