Re: Gripe: bytea_output default => data corruption

From: Dmitriy Igrishin <dmitigr(at)gmail(dot)com>
To: rod(at)iol(dot)ie
Cc: ljb <ljb9832(at)pobox(dot)com>, pgsql-general(at)postgresql(dot)org
Subject: Re: Gripe: bytea_output default => data corruption
Date: 2010-10-13 12:48:41
Message-ID: AANLkTinWoQ1QG7TSoDj52UTZ8sj4cwGewFDA_4gnz9LJ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-docs pgsql-general

Hey all,

And it is 9.0, i.e another major version. IMO the higher major versions not
necessarily must be 100% backward compatible. So, think twice next time
you update the major version.

2010/10/13 Raymond O'Donnell <rod(at)iol(dot)ie>

> 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
>
>
> --
> Sent via pgsql-general mailing list (pgsql-general(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>

--
// Dmitriy.

In response to

Browse pgsql-docs by date

  From Date Subject
Next Message ljb 2010-10-13 21:03:43 Re: Gripe: bytea_output default => data corruption
Previous Message Raymond O'Donnell 2010-10-13 07:45:58 Re: Gripe: bytea_output default => data corruption

Browse pgsql-general by date

  From Date Subject
Next Message Igor Neyman 2010-10-13 12:50:36 Re: problem with PG install script on Windows
Previous Message Merlin Moncure 2010-10-13 12:43:27 Re: Passing refcursors between pl/pgsql functions