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

From Raymond O'Donnell
Subject Re: Gripe: bytea_output default => data corruption
Date
Msg-id 4CB563B6.8020803@iol.ie
Whole thread Raw
In response to Gripe: bytea_output default => data corruption  (ljb <ljb9832@pobox.com>)
Responses Re: Gripe: bytea_output default => data corruption
List 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@iol.ie

pgsql-general by date:

Previous
From: Derk Jan Horstman
Date:
Subject: Re: about RPM build options
Next
From: "Reuven M. Lerner"
Date:
Subject: Passing refcursors between pl/pgsql functions