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
>
>
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 |