Re: BYTEA

Поиск
Список
Период
Сортировка
От Jeff Davis
Тема Re: BYTEA
Дата
Msg-id 200209200342.44393.list-pgsql-general@empires.org
обсуждение исходный текст
Ответ на Re: BYTEA  ("Timur V. Irmatov" <itvthor@sdf.lonestar.org>)
Список pgsql-general
Like the other reply said, it does get parsed an additional time for the
bytea-specific encodings.

base64 encoding/decoding might help you out with that. If you're really
inserting a lot of binary data, that seems like the way to go to me.

If you find it easier to mess with text types or escape the strings before you
pass to bytea, then go for it, but I like the idea of base64 encoding it when
I have a lot of unsafe characters.

Oh, one other note: you still have to escape the following characters, for
anything passed in a query:
single-quote
backslash
NULL

Regards,
    Jeff

On Friday 20 September 2002 01:46 am, Timur V. Irmatov wrote:
> Jeff!
>
> Friday, September 20, 2002, 1:24:28 PM, You wrote:
>
> JD> I don't really see a way postgres could do it any better, since the
> queries JD> and results are both strings, so there have to be rules about
> what a string JD> might include. Base64 works nicely because it's fairly
> compact, and all JD> "safe" text.
>
> Hm.. If i have a varchar field then if I want to insert a string
> some'tex\t into it, I quote it like that: 'some\'tex\\t' .. but if I
> want to insert the same into bytea field I must quote it more:
> 'some\\'tex\\\\' .. why ???
>
> JD> 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
>
> JD> ---------------------------(end of
> broadcast)--------------------------- JD> TIP 6: Have you searched our list
> archives?
>
> JD> http://archives.postgresql.org
>
>
>
> Sincerely Yours,
> Timur
> mailto:itvthor@sdf.lonestar.org
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org


В списке pgsql-general по дате отправления:

Предыдущее
От: Yury Bokhoncovich
Дата:
Сообщение: Re: rpm with locale enabled
Следующее
От: Jeff Davis
Дата:
Сообщение: Re: missed features and unhappy changes when pg 7.1->7.2