[Pgsql-ayuda] Re: Conversion a Base64

Alvaro Herrera alvherre@dcc.uchile.cl
Wed, 8 Oct 2003 19:06:54 -0400


On Wed, Oct 08, 2003 at 10:59:41PM +0000, Edwin Quijada wrote:

> create table a (uno int);
> "insert into a values ('`mimencode foto.jpg`');"
> 
> Y para extraerlo:
> "select uno from a limit 1" | mimencode -u -o otra.jpg
> 
> Lo que no acabo de entender es porque declaraste uno tipo int no debberia 
> ser tipo text?

Huh, claro.  Disteclia.  Tiene que ser TEXT.

> Este codigo no convertia la foto en byte para ser almacenada en un campo 
> tipo text?

Ojo que eso funciona usando el shell... no es necesariamente lo que uno
haria en un programa normal.  Por ej. en Perl podrias usar MIME::Base64
para la codificacion y decodificacion.  O bien usar DBI y como dijo
Martín, los métodos prepare() y execute() con un "placeholder" donde
pones la cadena de bytes de la foto.  No lo he probado, pero _debería_
funcionar.

> Cual es el tamano de una tupla en Postgres? 8k?

Bueno, depende de la tupla.  Si te refieres al tamaño máximo,
considéralo ilimitado.  Cada campo está limitado a 1 GB (TEXT, BYTEA,
algunos otros).

-- 
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"In fact, the basic problem with Perl 5's subroutines is that they're not
crufty enough, so the cruft leaks out into user-defined code instead, by
the Conservation of Cruft Principle."  (Larry Wall, Apocalypse 6)