Re: IN clauses via setObject(Collection) [Was: Re: Prepare - Mailing list pgsql-jdbc

From Fernando Nasser
Subject Re: IN clauses via setObject(Collection) [Was: Re: Prepare
Date
Msg-id 3F1C4165.5010503@redhat.com
Whole thread Raw
In response to Re: IN clauses via setObject(Collection) [Was: Re: Prepare  (Darin Ohashi <DOhashi@maplesoft.com>)
Responses Re: IN clauses via setObject(Collection) [Was: Re: Prepare  (Dmitry Tkach <dmitry@openratings.com>)
List pgsql-jdbc
Darin Ohashi wrote:
>>There is no technical reason why sql prepare cannot support "IN ?"
>>If it is not supported by the backend at the moment should not affect
>>the general decision of whether or not having such a feature
>>is useful
>>to have in the jdbc driver or not.
>>

Unfortunately it does.  How can we justify a feature that only works when we are
simulating prepared statements and fails when we are using the real PREPARED
statements as provided by the server?

The current implementation of PREPARE in the backend does not allow us the
syntax to specify in any way that we intend to provide a list of values for the
? parameter that would go into the IN clause and even give a syntax error if we
try to specify a ? in there (with or without the parenthesis).

I don't have the embedded SQL'99 spec here to check that, but if there isn't a
standard way to do that it will be hard to convince the backend folks to
implement it.  Haven't they thought of this case, where someone wants to
dynamically provide an <in value list> ?

This would probably require a special protocol feature to upload the list of
values as the parsing has already been done so we cannot just send the "(1, 2,
3, )' string.  We need to send the actual length of the list followed by the values.

This is getting too complicated...  :-(



--
Fernando Nasser
Red Hat - Toronto                       E-Mail:  fnasser@redhat.com
2323 Yonge Street, Suite #300
Toronto, Ontario   M4P 2C9


pgsql-jdbc by date:

Previous
From: Dmitry Tkach
Date:
Subject: Re: IN clauses via setObject(Collection) [Was: Re: Prepare
Next
From: Dmitry Tkach
Date:
Subject: Re: IN clauses via setObject(Collection) [Was: Re: Prepare