Re: Java Studio Creator Fix/Hack

From: Pucky Loucks <ploucks(at)h2st(dot)com>
To: Kris Jurka <books(at)ejurka(dot)com>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: Java Studio Creator Fix/Hack
Date: 2004-12-11 17:35:58
Message-ID: 1E96BBA8-4B9B-11D9-888E-000393CE25C2@h2st.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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
>
>

In response to

Browse pgsql-jdbc by date

  From Date Subject
Next Message Tom Lane 2004-12-11 17:36:02 Re: [JDBC] Issue with large objects
Previous Message Andrew M 2004-12-11 15:50:31 Re: PostgreSQL + SSL - sun.security.validator.ValidatorException