Re: Function to convert from TEXT to BYTEA?

Поиск
Список
Период
Сортировка
От Richard Huxton
Тема Re: Function to convert from TEXT to BYTEA?
Дата
Msg-id 475FEAE6.7090902@archonet.com
обсуждение исходный текст
Ответ на Function to convert from TEXT to BYTEA?  ("D. Dante Lorenso" <dante@lorenso.com>)
Ответы Re: Function to convert from TEXT to BYTEA?  ("D. Dante Lorenso" <dante@lorenso.com>)
Список pgsql-general
D. Dante Lorenso wrote:
> All,
>
> I want to use the ENCRYPT and DECRYPT functions from contrib, but they
> require inputs of BYTEA.
>
> My data is in VARCHAR and TEXT fields and when I try to use the contrib
> functions, they complain about wrong datatypes.  Is there a string
> function or something that will take a VARCHAR or TEXT input and output
> a BYTEA so that I can use that as input for the ENCRYPT/DECRYPT functions?
>
> I know about creating a CAST from VARCHAR to BYTEA, but the problem with
> a CAST is that it doesn't port to other database servers when I do a
> dump and restore.

Doesn't it?
Hmm... seems to dump for me in 8.2

 > That forces me to manually have to recreate the cast
> each time a new database is set up and usually that's the step that gets
> forgotten.

Surely you have a script that creates your databases for you?

> Is there a function that will do what I want to convert the datatype
> without having to create a CAST that PostgreSQL doesn't have natively?
> How else are you supposed to use the ENCRYPT and DECRYPT functions?

With actual bytea types?

Anyway this will convert for you - PG can get from an unknown quoted
literal to bytea just fine.

CREATE FUNCTION text2bytea(text) RETURNS bytea AS $_$
DECLARE
   b bytea;
BEGIN
   EXECUTE 'SELECT  ' || quote_literal($1) || '::bytea' INTO b;
   RETURN b;
END
$_$
LANGUAGE plpgsql;

And here's the cast definition that goes with it

CREATE CAST (text AS bytea) WITH FUNCTION public.text2bytea(text);

HTH
--
   Richard Huxton
   Archonet Ltd

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

Предыдущее
От: "A. Kretschmer"
Дата:
Сообщение: Re: executing a procedure with delay
Следующее
От: "Isak Hansen"
Дата:
Сообщение: Re: index organized tables use case