Re: Gripe: bytea_output default => data corruption - Mailing list pgsql-general

From ljb
Subject Re: Gripe: bytea_output default => data corruption
Date
Msg-id i9t1sf$2vvn$1@news.hub.org
Whole thread Raw
In response to Re: Gripe: bytea_output default => data corruption  (Rajesh Kumar Mallah <mallah.rajesh@gmail.com>)
List pgsql-general
vivek@khera.org wrote:
>...
> I had some hoops thru which I had to jump to make our app compatible with
> both 8.x and 9.x so we could safely migrate our servers without having to
> coordinate a code push.  It wasn't that bad, but part of the problem is that
> the DBD::Pg driver does not understand the new format... but it does
> unescape the "\x" marker for me to a simple "x", since that follows the
> traditional un-escaping rules for values returned from Pg.  I don't like
> overriding defaults in the DB settings unless I *really* have to.

Although DBD::Pg uses libpq, linking it with the PostgreSQL-9.0 libpq
doesn't fix the escape/unescape problem. (I'm sure you already know this.)
That's because DBD::Pg implements its own string and bytea escape and
unescape functions, for some reason, and does not use PQescapeStringConn
etc. (I wonder if that makes it vulnerable to the security problems fixed
8.1.4?)

I probably would have just gone ahead and deployed 9.0 servers with
"bytea_output='escape'" in their postgresql.conf files. Permanent work-around.

pgsql-general by date:

Previous
From: Tim Uckun
Date:
Subject: Re: Updates, deletes and inserts are very slow. What can I do make them bearable?
Next
From: "karsten vennemann"
Date:
Subject: Re: auto fill serial id field with default value in copy operation