Subject Re: [firebird-support] Case-sensitive object names
Author Ann W. Harrison
landie_wu wrote:
>
> It seems, regardless of the script, all objects are created with
> uppercase names.

According to the SQL standards, non-delimited (i.e. unquoted)
identifiers are case insensitive and fold to upper case. Delimited
(i.e. quoted) identifiers are case sensitive and case-preserving.
Firebird follows the standard exactly in this case.

If you define and use unquoted identifiers, you'll have no
problems with case, except that show commands are kind of
ugly - they'll print identifiers in all upper case.

> I am accessing Firebird from a .NET app that uses
> Wilson's O/R Mapper. I keep getting error messages that said
> this-or-that table or field could not be found. If I change it to
> uppercase names then it works.

Your tool is generating delimited identifiers. Tell it not to
and Bob, BOB, bob, and bOb will be equivalent.
>
> Does anyone know if it's possible to create objects with the exact
> same casing as the script, ie. create table Bob will create a table
> named Bob, not BOB.

This table definition

create table Bob (Sally integer, Jip integer);

works with these queries and other variants

select * from bob;
select * from Bob;
select * form BoB;
select * from BOB;

it also works with this:

select * from "BOB";

This table definition

create "Bob" ("Sally" integer, "Jip" integer);

works only with

select * from "Bob";

Regards,


Ann