Re: the IN clause saga - Mailing list pgsql-jdbc

From Dmitry Tkach
Subject Re: the IN clause saga
Date
Msg-id 3F1D4A71.8050400@openratings.com
Whole thread Raw
In response to Re: the IN clause saga  (Fernando Nasser <fnasser@redhat.com>)
Responses Re: the IN clause saga  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-jdbc
Fernando Nasser wrote:

> Thanks for summarizing it Oliver.
>
> I've asked Tom Lane about the backend behavior and he informed me that:
>
> 1) 7.4 backends do support parameters in the IN predicate, as ($1, $2,
> $3) (i.e., our (?, ?, ?) syntax).
>
> 2) 7.4 backends have a PostgreSQL specific extension that allows you
> to fill the IN predicate with a list: ($1)  (i.e., our (?) ).  One has
> to pass a PostgreSQL array, like integer[] to fill the list.  Note
> that the parenthesis is already in place, it is not generated by the ?
> expansion.
>
> The feature 2 in 7.4 backends is of limited use as the planner does
> not know about the list, so the generated plan will not be as good as
> if you pass the list with fixed values since the beginning.

This is the same problem, as it generally exists with x=? - the query
plan is generally not as good as x=1, because the planner doesn't know
the value to use with statistics.

Are you saying that #2 only works with integers? Or can you give it any
array?

Dima


pgsql-jdbc by date:

Previous
From: Dmitry Tkach
Date:
Subject: Re: the IN clause saga
Next
From: Oliver Jowett
Date:
Subject: Re: patch: tiny patch to correct stringbuffer size estimate