Re: Tuple data - Mailing list pgsql-hackers

From Hannu Krosing
Subject Re: Tuple data
Date
Msg-id 3A3BCEA2.BC6FBA1B@tm.ee
Whole thread Raw
In response to Tuple data  ("Michael Richards" <miker@interchange.ca>)
List pgsql-hackers
Michael Richards wrote:
> 
> > That's not right --- AFAIR there is no length in the tuple data.  You
> > must use the length from the 'page item' pointer that points to this
> > tuple if you want to know the total tuple length.
> 
> Oops, I meant attribute length...
> 
> > If you were testing with tables containing single varlena columns, then
> > you may have seen the varlena datum's length word and taken it for total
> > length of the tuple --- but it's only total length of that one column.
> 
> Yes, I obviously had assumed that this length was common to all types (I was
> testing with varchars before).
> 
> I presume then that I get the sizes based on some system tables. What query
> should I run to give me the layout (in the order it's on disk) and the size
> of each non-varlen attribute?

select * from pg_attributewhere attrelid = (select oid from pg_class where relname = 'tablename')order by attnum;

then look up types by attypid to find the types or just look at attlen
==-1 for varlena types

select * from pg_type where oid = 23;     -- gives info for int type
select * from pg_type where oid = 1043;   -- varchar



--------
Hannu


pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: 7.1 features list
Next
From: "Michael Richards"
Date:
Subject: Re: Tuple data