Re: postgresql-9.1.1 PQescapeByteaConn() generating incorrectly quoted output. - Mailing list pgsql-general

From Graham Murray
Subject Re: postgresql-9.1.1 PQescapeByteaConn() generating incorrectly quoted output.
Date
Msg-id 1320395864.17705.94.camel@gmdev.webwayone.co.uk
Whole thread Raw
In response to Re: postgresql-9.1.1 PQescapeByteaConn() generating incorrectly quoted output.  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
On Wed, 2011-11-02 at 18:21 +0000, Tom Lane wrote:
> Graham Murray <gmurray@webwayone.co.uk> writes:
> > Since upgrading test systems to postgresql 9.1, I am seeing some
> inserts
> > to bytea fields giving errors such as "ERROR:  invalid byte sequence
> for
> > encoding "UTF8": 0xf9" Where the insert is from a C program using
> libpq
> > and is of the form "insert into xxx values(E'%s')" where the value
> is
> > the return of PQescapeByteaConn();
>
> That is incorrect coding.  The result of PQescapeByteaConn has never
> been meant to be put into an E'' literal.  You might have managed to
> get away with it so long as standard_conforming_strings was off in the
> server, but it's on by default in 9.1.

Thanks.
 I have now changed it (for the next application release) to use
'plain' not E'' strings. Originally I was using non-E strings, but I
changed it because 9.0.x (with the default
standard_conforming_strings=off) gave a warning suggesting that they
should be E' escaped.

Attachment

pgsql-general by date:

Previous
From: "Michael Musenbrock"
Date:
Subject: Custom Contraint Violation Errors
Next
From: Csaba Nagy
Date:
Subject: Re: Foreign Keys and Deadlocks