Subject Re: [firebird-support] Unicode_FSS internals (was Re: Unique Index with Unicode_FSS)
Author Ann Harrison
peter_jacobi.rm wrote:

>But, for rechnical reasons, Firebird will always
>allocate everything (indices, wire data, storage, ...)
>as if each character alwyas takes three bytes, in contrast
>to UTF-8 as designed, which uses a variable number of
Static buffers are allocated at the maximum possible length, so yes, the
wire protocol does allocate three bytes for every UTF-8 character.
Index declarations also make room for the maximum possible length. In
fact, varying length characters are stored in the database and index.
In the database, run length compression absorbs most of the wasted
space. The sad part is that you'll almost never create an index key
that's entirely made of three byte characters... but you can't declare
anything smaller.