On Thu, Aug 9, 2018 at 10:14:33AM -0400, Bruce Momjian wrote: > On Thu, Aug 9, 2018 at 12:18:27PM +1200, Morgan Owens wrote: > > On 2018-08-09 05:24, Bruce Momjian wrote: > > >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. > > > > > > > That says it for me. The third mention of context doesn't need anything > > because it's referring specifically to the (single) use of $2 in the > > example. I have to presume the type inference happens before any structural > > changes that might change the meaning of "first occurrence". > > Great, patch applied through 9.3. I also changed "used" to > "referenced": > > > https://git.postgresql.org/pg/commitdiff/b284262e40424daa1c546ad76f365b31304d7944
Sorry, reporting credit should have gone to Nick Farmer. -- 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 +