Re: BYTEA

From: Jeff Davis <list-pgsql-general(at)empires(dot)org>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: BYTEA
Date: 2002-09-20 08:24:28
Message-ID: 200209200124.28454.list-pgsql-general@empires.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general


The easiest thing that I've found to do is:

INSERT ... decode('string','base64')::bytea ....
and
SELECT ... encode(attr1,'base64')::text ...

where attr1 is the BYTEA attribute, and 'string' is a string of base64-encoded
data. You can also use 'hex' instead of base64.

This works well because most languages have a good way to do either a
binary->hex->binary conversion or a binary->base64->binary conversion.

I don't really see a way postgres could do it any better, since the queries
and results are both strings, so there have to be rules about what a string
might include. Base64 works nicely because it's fairly compact, and all
"safe" text.

Regards,
Jeff

On Friday 20 September 2002 12:57 am, Timur V. Irmatov wrote:
> Hi, people!
>
> I've used PostgreSQL for few months and it fully satisfies my needs.
>
> Now I'm starting to explore BYTEA type (for storing small 1-5 Kb png
> images) and found it very cumbersome.
>
> I'd like to hear background explanation of why strings used as bytea
> literals pass two phases of parsing? it seems very odd to me to escape
> backslash two times (like that: '\\\\' ) just to insert it into
> string.. It adds more complexity to apps, forcing it encode/decode
> those literals..
>
> I think it would be enough to quote it like any other string, just for
> parser to understand it correctly, and insert into table. Bytea is
> binary data by it's nature, why to quote it when I perform selects?
> I'm not going to show it to humans, it is just data for my
> application.
>
> And if bytea really is displayed to a human then translating value into
> readable form (quote non-printable characters etc.) is a task of the
> application (psql, my app ..) but not PostgreSQL backend's.
>
> Any comments?
>
> Timur.
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://archives.postgresql.org

In response to

  • BYTEA at 2002-09-20 07:57:07 from Timur V. Irmatov

Responses

  • Re: BYTEA at 2002-09-20 08:46:52 from Timur V. Irmatov

Browse pgsql-general by date

  From Date Subject
Next Message Timur V. Irmatov 2002-09-20 08:46:52 Re: BYTEA
Previous Message Timur V. Irmatov 2002-09-20 07:57:07 BYTEA