On Thu, 2005-11-03 at 11:13 -0300, Alvaro Herrera wrote:
> Simon Riggs wrote:
> > On PostgreSQL, CHAR(12) is a bpchar datatype with all instantiations of
> > that datatype having a 4 byte varlena header. In this example, all of
> > those instantiations having the varlena header set to 12, so essentially
> > wasting the 4 byte header.
>
> We need the length word because the actual size in bytes is variable,
> due to multibyte encoding considerations.
Succinctly put, thanks.
Incidentally, you remind me that other databases do *not* vary the
character length, even if they do have varying length UTF-8 within them.
So if you define CHAR(255) then it could blow up at a random length if
you store UTF-8 within it.
That's behaviour that I could never sanction, so I'll leave this now.
Best Regards, Simon Riggs