Subject | Re: [firebird-support] Max identifier length? |
---|---|
Author | Ann W. Harrison |
Post date | 2009-04-07T21:10:21Z |
Kjell Rilbe wrote:
InterBase chose to use the same system tables as DEC's RDB databases
which were designed in 1982. Back then, 7-bit ASCII was good enough
for everybody, a byte was a character, and there weren't none of those
fancy collation things. Over time, most of Firebird has evolved to
be much more world friendly, but changing the data type of the strings
in the system tables is a daunting and very incompatible change.
So, even though char and varchar now understand character length
and byte length, the system tables don't. Yes, that's a bug.
But it's a big nasty old bug, well dug in.
Good luck,
Ann
>Both - it's an artifact. The system tables are really really ancient -
> For those who lost track: the problem is that if one or more characters
> in the table name above is changed into a character that takes up more
> than one byte, the max identifier length decreases proportionally.
>
> But is it a bug?
>
> I thought this was as designed?
InterBase chose to use the same system tables as DEC's RDB databases
which were designed in 1982. Back then, 7-bit ASCII was good enough
for everybody, a byte was a character, and there weren't none of those
fancy collation things. Over time, most of Firebird has evolved to
be much more world friendly, but changing the data type of the strings
in the system tables is a daunting and very incompatible change.
So, even though char and varchar now understand character length
and byte length, the system tables don't. Yes, that's a bug.
But it's a big nasty old bug, well dug in.
Good luck,
Ann