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)
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 |