Re: Using UTF strings in pg8.3 - storing hexadecimal values in bytea columns

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Mario Splivalo <mario(dot)splivalo(at)megafon(dot)hr>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: Using UTF strings in pg8.3 - storing hexadecimal values in bytea columns
Date: 2008-11-10 16:26:09
Message-ID: 7640.1226334369@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Mario Splivalo <mario(dot)splivalo(at)megafon(dot)hr> writes:
> Tom Lane wrote:
>> Exactly what version of pg_dump are you using? What I get from pg_dump
>> doesn't look like that. Bytea fields with -D look more like this:
>>
>> INSERT INTO foo (f1) VALUES ('\\305S\\224\\226\\203)');

> Yes, I mistakenly used pg8.2 pg_dump, when I use pg3.8 dump I get what
> you get.

I was quoting the output of 8.2.latest pg_dump. Maybe you have a very
old subrelease? But no version of pg_dump would've put an explicit
cast to bytea in there.

> Btw, what is that S after 305?

Hex 53 is 'S' I believe.

> 305 octal is C5 hexadecimal. How
> do I enter hexadecimal C5 without UTF encoding errors?

bytea only supports octal, so \\305 is the way to do it. The way you
were doing it was guaranteed to fail on corner cases such as \0 and \
itself, because you were converting at the string-literal stage not
byteain().

regards, tom lane

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Richard Huxton 2008-11-10 16:42:36 Re: Using UTF strings in pg8.3 - storing hexadecimal values in bytea columns
Previous Message Mario Splivalo 2008-11-10 16:14:52 Re: Using UTF strings in pg8.3 - storing hexadecimal values in bytea columns