Re: Alternative variable length structure

From: Rod Taylor <pg(at)rbt(dot)ca>
To: Josh Berkus <josh(at)agliodbs(dot)com>
Cc: ITAGAKI Takahiro <itagaki(dot)takahiro(at)lab(dot)ntt(dot)co(dot)jp>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Alternative variable length structure
Date: 2005-09-08 17:36:33
Message-ID: 1126200993.722.308.camel@home
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, 2005-09-08 at 09:53 -0700, Josh Berkus wrote:
> Takahiro,
>
> > PostgreSQL can treat variable-length data flexibly, but therefore
> > it consumes more spaces if we store short data. Headers of
> > variable-length types use 4 bytes regardless of the data length.
> >
> > My idea is to change the header itself to variable-length.
> > In order to reduce the size of short data, I wrote a patch to encode
> > lengths into the first several bits of structure. Also, the alignments
> > of the types were changed to 'char' from 'int'.
> >
> > I know my patch is still insufficient, for example, the types cannot
> > be TOASTed. But I guess this compression works well for short text.
>
> Hmmm. Seems like these would be different data types from the standard ones
> we deal with. I can see the value for data warehousing, for example.
>
> Wouldn't this require creating, for example, a SHORTTEXT type? Or were you
> planning this to handle VARCHAR(6) and the like? If so, how would we deal
> with users who change the length via ALTER TABLE?

I believe ALTER TABLE always rewrites the structure using a standard
cast or another expression.

--

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2005-09-08 17:40:43 Re: initdb profiles
Previous Message Simon Riggs 2005-09-08 17:36:25 Re: statement logging / extended query protocol issues