Re: PreparedStatement.toString() creates valid SQL; was: Q: use setObject also for int or string - Mailing list pgsql-jdbc

From Kris Jurka
Subject Re: PreparedStatement.toString() creates valid SQL; was: Q: use setObject also for int or string
Date
Msg-id Pine.BSO.4.64.0809211910030.27954@leary.csoft.net
Whole thread Raw
In response to Re: PreparedStatement.toString() creates valid SQL; was: Q: use setObject also for int or string  (Michael Enke <michael.enke@wincor-nixdorf.com>)
Responses Re: PreparedStatement.toString() creates valid SQL; was: Q: use setObject also for int or string  (Michael Enke <michael.enke@wincor-nixdorf.com>)
List pgsql-jdbc

On Sun, 21 Sep 2008, Michael Enke wrote:

> I did this and it would be great if you could have a look into the
> attached patch files and make comments.
>
> It has to set standard_conforming_strings to false
> in any case to create valid sql:
> If I use setString(1, "a\\b");
> the real stored characters are 'a','\','b'.
> If I would use standard_conforming_strings=true
> the output would be "a\b"
> but with set to false the output is "a\\b" which is the correct one.

One of the backslashes is used for Java's escaping, so the real data does
only have one backslash which is the correct behavior for
standard_conforming_strings.  Also note that E'' syntax is only supported
on 8.1 and later servers, so it can't be used unconditionally.

> I did not understand what you mean with InputStream.

See the attached test case.

Also note that the String "NULL" should be 'NULL', not plain NULL.

Kris Jurka

Attachment

pgsql-jdbc by date:

Previous
From: Michael Enke
Date:
Subject: Re: PreparedStatement.toString() creates valid SQL; was: Q: use setObject also for int or string
Next
From: Michael Enke
Date:
Subject: Re: PreparedStatement.toString() creates valid SQL; was: Q: use setObject also for int or string