Re: Fixed length data types issue - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: Fixed length data types issue
Date
Msg-id 200609081915.k88JFI408663@momjian.us
Whole thread Raw
In response to Re: Fixed length data types issue  (Martijn van Oosterhout <kleptog@svana.org>)
List pgsql-hackers
Martijn van Oosterhout wrote:
-- Start of PGP signed section.
> On Fri, Sep 08, 2006 at 09:28:21AM -0400, mark@mark.mielke.cc wrote:
> > > But that won't help in the example you posted upthread, because char(N) 
> > > is not fixed-length.
> > 
> > It can be fixed-length, or at least, have an upper bound. If marked
> > up to contain only ascii characters, it doesn't, at least in theory,
> > and even if it is unicode, it's not going to need more than 4 bytes
> > per character. char(2) through char(16) only require 4 bits to
> > store the length header, leaving 4 bits for encoding information.
> > bytea(2) through bytea(16), at least in theory, should require none.
> 
> If your talking about an upper-bound, then it's not fixed length
> anymore, and you need to expend bytes storing the length. ASCII bytes
> only take one byte in most encodings, include UTF8.
> 
> Doodling this morning I remember why the simple approach didn't work.
> If you look at the varlena header, 2 bits are reserved. Say you take
> one bit to indicate "short header". Then lengths 0-31 bytes can be
> represented with a one byte header, yay!
> 
> However, now you only have enough bits leftover to store 29 bits for
> the length, so we've just cut the maximum datum size from 1GB to 512MB.
> Is that a fair trade? Probably not, so you'd need a more sophisticated
> scheme.

I was hoping we could have both bits true mean short header, but that is
also used by our system to indicate compressed and TOAST usage.  For
testing, I would just grab a bit and see how thing go.

--  Bruce Momjian   bruce@momjian.us EnterpriseDB    http://www.enterprisedb.com
 + If your life is a hard drive, Christ can be your backup. +


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: [PATCHES] Fix linking of OpenLDAP libraries
Next
From: elein
Date:
Subject: Re: Domains and subtypes, a brief proposal