Re: [Pgsql-ayuda] Longitud de campos string

From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: Manuel Sugawara <masm(at)fciencias(dot)unam(dot)mx>
Cc: Edwin Quijada <listas_quijada(at)hotmail(dot)com>, Pgsql <pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx>
Subject: Re: [Pgsql-ayuda] Longitud de campos string
Date: 2003-09-02 19:05:54
Message-ID: 20030902190554.GA23524@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Tue, Sep 02, 2003 at 12:56:49PM -0500, Manuel Sugawara wrote:
> Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl> writes:
>
> > On Wed, Sep 03, 2003 at 01:01:22AM -0400, Edwin Quijada wrote:
> > > Es a char , varchar y bpchar.
> > > Lo que deseo es saber cual es la longitd del campo para luego truncarlo en
> > > caso de ser necesario mediante un trigger.
> >
> > Lee el campo attypmod de la tabla pg_attribute y restale 4.
>
> ¿no sería más general restarle sizeof(int)?.

Me parece que los campos varlena (text, varchar, numeric, etc) tienen un
largo codificado en 4 bytes, aunque sea en maquinas de 64 bits. Eso es
lo que me parece entender en src/include/access/postgres.h:

/* ----------------
* struct varattrib is the header of a varlena object that may have been
* TOASTed.
* ----------------
*/

typedef struct varattrib
{
int32 va_header; /* External/compressed storage */
union
[...]

--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"If it wasn't for my companion, I believe I'd be having
the time of my life" (John Dunbar)

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Manuel Sugawara 2003-09-02 19:06:05 Re: [Pgsql-ayuda] ayuda
Previous Message Angelica Altamirano Castillo 2003-09-02 18:52:03 [Pgsql-ayuda] ayuda