Subject Re: [firebird-support] Upper case behaviour
Author Ann W. Harrison
Eugen.Konkov@... wrote:
> Hello
> Can I disable server to uppercase object names?

No. Firebird's handling of object names (aka identifiers) follows
the standard and the behavior is used by tools that handle metadata.

The ISO standard for the SQL language defined two types of identifiers,
regular and delimited. Identifiers are the names of objects defined
by users of SQL - tables, fields, indexes, constraints, functions,
procedures, etc. Regular identifiers must begin with a letter - the
standard provides a much more specific definition based on Unicode
specifications - and can not contain spaces and most special characters.
Delimited identifiers are enclosed in double quotes and can contain
any character - though some must be escaped.

Regular identifiers are case insensitive. Delimited identifiers are
case sensitive. Case insensitivity is defined as allowing identifiers
to match if their upper-case versions are equivalent. In several
collations, more than one lower-case letter corresponds to a single
upper-case letter, so the comparison "folds" to upper case.

This means that some delimited identifiers - those in all upper-case
that don't contain any characters not allowed in regular identifiers -
are equivalent to non-delimited identifiers.

For example "ABC" is equivalent to abc, Abc, AbC, etc. Many tools
take advantage of that fact. When creating metadata objects out of
stored names, they always quote the name stored in the schema.



Regards,


Ann