Thread: BUG #5483: PQescapeStringConn behaviour ??

BUG #5483: PQescapeStringConn behaviour ??

From
"Pascal Van Puymbroeck"
Date:
The following bug has been logged online:

Bug reference:      5483
Logged by:          Pascal Van Puymbroeck
Email address:      ppk@zenonpro.be
PostgreSQL version: 8.3.5 and 8.3.8
Operating system:   Centos 5.4
Description:        PQescapeStringConn behaviour ??
Details:

Don't know whether this bug/behaviour is normal or fixed in newer versions.
Didn't have the time to prepare a new installation just to test this.

PQescapeStringConn is intended to facilitate the insertion of say a
streetname with a single quote like " d'alembert ".  Using this function on
normal en special strings like " tëxt " (an e with two dots on, quite
common in the dutch and french language) is no problem.

However if the " ë " character is at the end of a string like the name of a
country in dutch "Italië"  this PQescapeStringConn function adds two
spaces.  so "België" becomes "België  ".  The error is set to 1 which
indicates we can't trust the outcome.  But I don't see why he has a problem
with that character at the end of the string and not in the middle !

Re: BUG #5483: PQescapeStringConn behaviour ??

From
Tom Lane
Date:
"Pascal Van Puymbroeck" <ppk@zenonpro.be> writes:
> However if the " ë " character is at the end of a string like the name of a
> country in dutch "Italië"  this PQescapeStringConn function adds two
> spaces.  so "België" becomes "België  ".  The error is set to 1 which
> indicates we can't trust the outcome.  But I don't see why he has a problem
> with that character at the end of the string and not in the middle !

This isn't tremendously surprising if you're feeding data to the
function that is not in the encoding it expects (which is what the error
flag almost certainly is telling you).  It may be able to detect the
problem in some cases and not others.

            regards, tom lane