Subject Re: [Firebird-Architect] UTF-8 Everywhere
Author Adriano dos Santos Fernandes
On 17/01/2014 14:14, Mark Rotteveel wrote:
> On Fri, 17 Jan 2014 10:33:01 -0500, Dalton Calford
> > I would agree in regards to UTF8, but I also think the length of SQL
> > identifiers needs to be adjusted - ie 31 char identifiers only give 7 to
> 8
> > characters for some character sets.
> Although I agree with an extension of the length of identifiers, your
> reason is incorrect: the 31 character limits gives you 31 characters
> in all
> languages; internally system identifiers are UNICODE_FSS, which has 3
> bytes
> per character, so actual storage is 63 bytes for an identifier. I wouldn't
> know how you would store only 7 to 8 characters unless your connection
> character set is 'wrong'.
Dalton is right. Firebird metadata is stored in UNICODE_FSS, and in
addition to UNICODE_FSS (user) problems, it has identifier's max *byte*
length equal to 31. So if you use characters that need more than one
byte, your max. character length shrinks.

Currently (FB 3) there should not be a big problem on fix this and
extend the max. character length. The old API will receive truncated
identifiers, but we should live with that.

But ISQL must be adjusted to be usable. Currently it pads SHOW command
output to 31 characters. If this is extended, probably the padding must
be dynamic, based on max. length of identifiers displayed. Or every
output may wrap to the next line (considering 80-columns console).