Re: Gripe: bytea_output default => data corruption

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

In response to

Responses

Browse pgsql-docs by date

  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

Browse pgsql-general by date

  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