Subject Re: [firebird-support] Upper case behaviour
Author Ann W. Harrison
Eugen.Konkov@... wrote:
> Always quoting is not problem.

yes it is.

> Suppose that you are supporting now case-preserving
> create table myTable (
> fieldID integer
> );
>
> This query will create table 'myTable' with field 'fieldID' in DB
> somewhere in programm there will be next query:
> select fieldID from myTable;

OK that worlds because both the declaration and the select
use regular identifiers.
>
> you say that some utils extract quote object's names in resulting metadata.
> so that some tool will generate next metadata:
> create table "myTable" (
> "fieldID" integer
> );

Right.
>
> When you execute that metadata as the result you will get
> 'myTable' table with 'fieldID' field.

No, you get "myTable" and "myFieldID", which are delimited
identifiers and are case sensitive.

> As DB server is not case sensetive

It's not a question of the DB server, it's a question of how
the identifier was defined.

I can still query this table like next:
> select fieldID from myTable;
No.
> select fieldid from mytable;
No.
> select FIELDID from MYTABLE;
No.

The only thing that works is:

select "fieldID" from "myTable";

There should be no problem with the internal references in
procedures. However, the names of procedures will be a problem.

create procedure blahBlah ...

becomes

create procedure "blahBlah" ...

and all references must be quoted and match the case exactly.


Regards,


Ann