From: | Juan Pablo Espino <jp(dot)espino(at)gmail(dot)com> |
---|---|
To: | Leonel Nunez <lnunez(at)enelserver(dot)com> |
Cc: | Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>, Pgsql-Es-Ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Varlenas |
Date: | 2005-03-19 18:45:48 |
Message-ID: | 3e7daec10503191045340bb9e6@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola
> Alvaro Herrera wrote:
>
> >On Sat, Mar 19, 2005 at 12:27:31PM -0500, Juan Pablo Espino wrote:
> >
> >Hola,
> >
> >
> >
> >>Entiendo que varlena es una estructura muy utilizada en el código de
> >>postgres, se define como un arreglo (vector o formación) de longitud
> >>variable, var = variable, len = length, a = array
> >>y la estructura en sí es
> >>
> >>struct
> >>{
> >> int32 vl_len;
> >> char vl_data[1];
> >>} varlena;
> >>
> >>Las cuatro primeras posiciones (sizeof(int32)) de una varlena indican
> >>el tamaño de la cadena que empieza en la quinta posicion. vl_data es
> >>una cadena de un byte sin caracter nulo (NULL). Hasta ahora esto es
> >>lo que entiendo sobre las varlenas, sin embargo no veo como se aplica
> >>a tantas cosas según dicen. En la lista de hackers hay algunos
> >>ejemplos, pero aun no comprendo bien, alguien podría ampliarme sobre
> >>este tema?
> >>
> >>
> >
> >Todos los campos de longitud variable son varlenas. Ejemplos: TEXT,
> >VARCHAR(n), CHAR(n), NUMERIC(m,n), BYTEA, BIT VARYING, arrays de
> >cualquier tipo, ROW(), etc.
> >
> >En el caso de los strings uno pensaria que es mejor usar strings
> >terminados en \0 como en C, pero eso no funciona porque en cada tupla es
> >necesario encontrar el siguiente atributo, lo cual seria muy lento si
> >tuvieras que recorrer completo el atributo anterior. Por eso se usan
> >varlenas para poder hacer un "seek" leyendo solamente el largo.
> >
> >Para el caso de BYTEA es obvio que no podrias usar un string terminado
> >en \0.
> >
> >Ademas, la infraestructura de varlena permite hacer TOAST sin gran
> >dificultad (ver doc. de TOAST en la seccion Internals).
> >
> >
> >
> como diria Pinky : Naaaaarrf !
no entendi, alguien me explica?
From | Date | Subject | |
---|---|---|---|
Next Message | Edwin Quijada | 2005-03-19 23:58:36 | RE: BD v/s archivos |
Previous Message | Leonel Nunez | 2005-03-19 18:10:29 | Re: Varlenas |