Re: I found a bug in the jdbc driver - Mailing list pgsql-jdbc

From Dave Cramer
Subject Re: I found a bug in the jdbc driver
Date
Msg-id 1053941824.1041.255.camel@inspiron.cramers
Whole thread Raw
In response to Re: I found a bug in the jdbc driver  (Csaba Nagy <nagy@ecircle-ag.com>)
List pgsql-jdbc
The new protocol is going to deal with some of these issues.

Dave
On Mon, 2003-05-26 at 04:42, Csaba Nagy wrote:
> Hi all,
>
> Is the semicolon legal in SQL statements passed to the JDBC API ?
> I'm asking this because I've had problems with semicolons with other
> drivers too (e.g. Oracle).
> OTOH, for the given problem, my opinion is that the driver should use
> some meta data passed back from the server after the server executes the
> query to find out what tables/fields were used (makes no sense to write
> a JDBC-side parser, too high risk of getting out of sync against the
> server's parser). I guess this is not supported by the current
> communication protocol, but my point is to push this as a real solution.
>
> Cheers,
> Csaba.
>
>
> On Thu, 2003-05-22 at 15:57, innuendo-nh@libero.it wrote:
> > I have just found a bug in the latest jdbc driver.
> >
> > The error is in the class org.postgresql.jdbc2.AbstractJdbc2ResultSet
> >
> > the method parseQuery() has a bug:
> >
> > if you give as sql query something like "SELECT * FROM tablename;", that is a
> > valid sql statement, and you try to use a resultset update method (like
> > updateInt()),  you receive an SQLException saying: No Primary Keys. this is
> > because the method parseQuery() make a too simplified use of the
> > StringTokenizer, so the variable tableName is set at something like this:
> > "tablename;". So when the isUpdateable() method request for the primary keys of
> > the table 'tablename;', postgres answers there are no rows (it can't fond any
> > primary key for the table because it doesn't exists). The problem can be
> > resolved writing the sql statement very carefully: you must insert blanks
> > between any part of the sql statement (operators, keywords, ecc.). In my example
> > the solution is to insert a blank before the semicolon ("SELECT * FROM tablename
> > ;").
> >
> > I think i can resolve the problem, modifying the driver, but i wuold be glad to
> > know if someone else is already working at it now.
> >
> > I hope this can be useful.
> >
> > Inny.
> >
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 4: Don't 'kill -9' the postmaster
> >
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/docs/faqs/FAQ.html
>
--
Dave Cramer <Dave@micro-automation.net>


pgsql-jdbc by date:

Previous
From: Csaba Nagy
Date:
Subject: Re: I found a bug in the jdbc driver
Next
From: "Christian W. Flotzinger"
Date:
Subject: UNSUSCRIBE