| From: | Bruce Momjian <bruce(at)momjian(dot)us> |
|---|---|
| To: | Morgan Owens <packrat(at)varteg(dot)nz> |
| Cc: | 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 14:14:33 |
| Message-ID: | 20180809141433.GA2876@momjian.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-docs |
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
--
Bruce Momjian <bruce(at)momjian(dot)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 +
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Bruce Momjian | 2018-08-09 14:15:27 | Re: Parameter types are inferred from context of first use only. |
| Previous Message | KES | 2018-08-09 10:11:05 | Re: Typo in doc or wrong EXCLUDE implementation |