Re: Java Studio Creator Fix/Hack

Поиск
Список
Период
Сортировка
От Pucky Loucks
Тема Re: Java Studio Creator Fix/Hack
Дата
Msg-id 1E96BBA8-4B9B-11D9-888E-000393CE25C2@h2st.com
обсуждение исходный текст
Ответ на Re: Java Studio Creator Fix/Hack  (Kris Jurka <books@ejurka.com>)
Список pgsql-jdbc
I should have only said HACK not fix... :)   Totally understand that
there is a better way to do it, I just need to get something working,
(this is not for production use) therefore hitting the database is fine
for me right now, and all statements are "select * from tablename"
again this is specific hack for Java Studio Creator.

Can't wait till a real JDBC Developer attacks the problem.

Thanks for the awesome work you guys do!

Pucky Loucks
How2Share Technologies Inc.

On 10-Dec-04, at 5:53 PM, Kris Jurka wrote:I s

>
>
> On Fri, 10 Dec 2004, Pucky Loucks wrote:
>
>> Hi everyone, I noticed at TODO for getMetaData() on the 8.0 and
>> figured
>> I'd give this task a try.  I now am able to use Java Studio Creator
>> with Postgresql 7.4.6.
>>
>> public ResultSetMetaData getMetaData() throws SQLException
>> { ResultSet rs = null;
>> checkClosed();
>> rs = getResultSet();
>>
>> if(rs == null)
>> {
>> // the following code hack has not been fully tested, therefor use at
>> your own risk.
>> /// by Pucky Loucks of How2share Technologies (creators of PiXPO)
>>
>> StatementResultHandler handler = new StatementResultHandler();
>>
>> connection.getQueryExecutor().execute(preparedQuery,
>> preparedParameters,
>> handler,
>> 0,
>> 0,
>> QueryExecutor.QUERY_ONESHOT);
>> rs = handler.getResults().getResultSet();
>> }
>>
>> return rs.getMetaData();
>> }
>> ===================END OF CODE HACK=====
>
>
> This patch doesn't really work.  It assumes that the PreparedStatement
> doesn't have side effects and that all parameters have been set.
>
> Consider:
>
> PreparedStatement pst = con.prepareStatement("UPDATE tab SET x=x+1");
> pst.getMetaData();
> pst.execute();
>
> Now all of a sudden x = x+2.  Actually your patch will throw a
> NullPointerException, but that's a simple code issue.
>
> Consider:
>
> PreparedStatement pst = con.prepareStatement("SELECT * FROM t WHERE
> x=?");
> pst.getMetaData();
>
> Fails with: org.postgresql.util.PSQLException: No value specified for
> parameter 1.
>
> The planned way to implement this feature is with the V3 protocol
> issuing
> Parse/Bind/Describe/ClosePortal without ever executing it.
>
> Kris Jurka
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
>                http://www.postgresql.org/docs/faqs/FAQ.html
>
>


В списке pgsql-jdbc по дате отправления:

Предыдущее
От: Andrew M
Дата:
Сообщение: Re: PostgreSQL + SSL - sun.security.validator.ValidatorException
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Issue with large objects