Re: BUG #1561: wrong detection of number of parameters in - Mailing list pgsql-bugs

From Oliver Jowett
Subject Re: BUG #1561: wrong detection of number of parameters in
Date
Msg-id 42464A88.3080103@opencloud.com
Whole thread Raw
In response to BUG #1561: wrong detection of number of parameters in java.sql.PreparedStatement  ("Ingolf Knopf" <iknopf@csc-dd.de>)
List pgsql-bugs
Ingolf Knopf wrote:

> "java.sql.PreparedStatement.executeUpdate()" throws "java.sql.SQLException",
> if the prepared sql-string contains '?' within a C-like comment.
>
> Example:
>   select relname
>   from pg_class
>   where /*relowner = ? and*/
>     relname = ?
>
> In this case, the java.sql.PreparedStatement of PostgreSQL requires two
> parameters, but I have only one.

The JDBC driver doesn't currently parse the statement in much detail. It
really only understands string literals, semicolon-separated statements,
and some JDBC-specified {...} escapes.

A workaround would be to "quote" the comment:

 select relname from pg_class where /*" relowner = ? and "*/ relname = ?

which should work (although I have not tested it)

There's no real reason why the driver can't be modified to understand
C-style comments, someone just needs to find the time to do it..
(patches to pgsql-jdbc please ;-)

-O

pgsql-bugs by date:

Previous
From: "Peter Cottingham"
Date:
Subject: BUG #1555: bug in GROUP BY?
Next
From: Robert Creager
Date:
Subject: Re: BUG #1563: wrong week returnded by date_trunc('week',