On Wed, 2011-11-02 at 18:21 +0000, Tom Lane wrote: > Graham Murray <gmurray@xxxxxxxxxxxxxxx> 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: smime.p7s>>