From: | Raymond O'Donnell <rod(at)iol(dot)ie> |
---|---|
To: | ljb <ljb9832(at)pobox(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Gripe: bytea_output default => data corruption |
Date: | 2010-10-13 07:45:58 |
Message-ID: | 4CB563B6.8020803@iol.ie |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-docs pgsql-general |
On 13/10/2010 01:37, ljb wrote:
> Defaulting bytea output from the backend to use hex mode encoding, which is
> incompatible with pre-9.0 interfaces, wasn't a friendly thing to do. The
> default should have been escape mode. Or else you needed a big warning in
> HISTORY that we must either change bytea_output, or upgrade all clients
> before servers. Because using a 9.0 server with a 8.x libpq-based client
> results in undetected data corruption when selecting BYTEA objects.
>
> By default, the 9.0 server encodes a bytea using hex mode, but an 8.x
> libpq-based client will decode that using escape mode, with no error detected
> on either end. For example, start with "A", encode to "\x40" decode to "x40".
>
> There are good reasons to break backward compatibility, like security or
> standards compliance, but not performance. Please think twice next time you
> consider breaking stuff just because you think the new way should be faster.
In fairness, it *is* flagged in the release note - it's the first item
under "data types" in the list of incompatibilities.
Ray.
--
Raymond O'Donnell :: Galway :: Ireland
rod(at)iol(dot)ie
From | Date | Subject | |
---|---|---|---|
Next Message | Dmitriy Igrishin | 2010-10-13 12:48:41 | Re: Gripe: bytea_output default => data corruption |
Previous Message | Josh Kupershmidt | 2010-10-13 01:05:58 | Re: Documenting removal of nonnullvalue() and friends |
From | Date | Subject | |
---|---|---|---|
Next Message | Reuven M. Lerner | 2010-10-13 09:18:46 | Passing refcursors between pl/pgsql functions |
Previous Message | Derk Jan Horstman | 2010-10-13 07:44:44 | Re: about RPM build options |