Re: Varlenas

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?

In response to

Browse pgsql-es-ayuda by date

  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