Re: Parameter types are inferred from context of first use only.

From: Morgan Owens <packrat(at)varteg(dot)nz>
To: Nick Farmer <farmernick-pg(at)varteg(dot)nz>, pgsql-docs(at)lists(dot)postgresql(dot)org
Subject: Re: Parameter types are inferred from context of first use only.
Date: 2018-08-09 00:18:27
Message-ID: 424fb120-8761-89e3-b538-fcc78d95aae9@varteg.nz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-docs

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".

Nick

In response to

Responses

Browse pgsql-docs by date

  From Date Subject
Next Message Bruce Momjian 2018-08-09 01:27:07 Re: Release note trimming: another modest proposal
Previous Message Bruce Momjian 2018-08-08 17:24:44 Re: Parameter types are inferred from context of first use only.