Кузнецов Евгений пишет:

Доброго времени суток!

Обнаружил (1.5.4, 2.0.1) интересную вещь

Если выполнить в isql команду
CREATE TABLE "TABLE1"
("FIELD1" INTEGER);
то сервер будет рассматривать идентификаторы
"TABLE1", "FIELD1" как регистронезависимые,
допуская запросы
select field1 from table1

В остальных же случаях все в порядке
CREATE TABLE "Table1"
("Field1" INTEGER);
- зависит от регистра

Смотрю LangRef.pdf:
To use keywords, ASCII characters, case-sensitive strings, or spaces in an object name, enclose the name in double quotes. It is then a delimited identifier. Delimited identifiers
must always be referenced in double quotes.

Ошибка в документации или в сервере?

Все идентификаторы, которые ты используешь без кавычек, преобразуются к верхнему регистру и сравниваются с метаданными. Т.к. ты создал таблицу и поле в верхнем регистре - сервер однозначно идентифицировал объекты и не ругнулся. Никаких признаков у объектов (кавычкастые они или нет) в метаданных не хранится (имхо).

--
С уважением,
 Андрей Еремин.

Ответить