InterBase: тормозология и глюконавтика
Страница 34. Выдержки из interbase 5.5. Release Notes


Другие материалы

Выдержки из interbase 5.5. Release Notes

Мои личные комментарии - курсивом.

Известные неисправленные глюки (Сами перечисляют, 15 штук.):

  • Не поддерживаются скобки в union. То есть нельзя написать select ... union (select ... union all select ...).
  • gpre не поддерживает конструкцию BASED_ON из ANSI C.
  • Невозможно создать foreign key, ссылающийся на первичный ключ, по которому созданы дополнительные уникальные индексы. Мы на этот глюк натыкались и он остался.
  • isc_dsql_execute() не берёт запроc типа execute procedure, если у процедуры нет входных параметров
  • Бэкап идёт очень медленно, если в недрах базы накопилось большое количество старых версий записей. Мы с Машей с этим однажды столкнулись на практике: база размером в четверть гигабайта не могла забэкапиться целую неделю!
  • Если не установлен корректный лицензионный файл и сделать попытку запустить сервер через interbaseMGR, то попытка окончится неудачей, хотя сервер всё равно запуститься и заглушить его будет невозможно (Фиг их знает, что они имеют в виду. Ведь на самом деле interbaseMGR не запускает сервер, а лишь подключается к нему)
  • Программы, состоящие из более чем одного файла, обработанного gpre не компонуются из-за продублированных идентификаторов
  • isql -extract, если его запустить на древней базе (3.x), содержащей определения на GDML, а не SQL, выдаёт смесь из конструкций GDML и SQL.
  • Клиент interbase до 4.2 включительно не воспринимает ситуацию, когда сервер на том конце разорвал соединение. К стати, утверждается, что ошибка исправлена в клиенте 5 и почему её поминают в этом разделе - непонятно.
  • Имена серверных библиотек должны обязательно указываться с расширением .DLL, если дело происходит под NT. Утверждается, что это глюк Микрософта (и мы с ним сталкивались). Любопытно, что для обхода советуют руками обновлять rdb$functions.
  • Оказывается, ошибки при create procedure, которая ссылается на несуществующий генератор, могут физически разрушить некоторые системные индексы. Рекомендуют этого избегать, а если произошло - немедленно ремонтировать базу со включённой опцией Validate Record Fragments.
  • Сервер можно обрушить запросом: "SELECT RDB$DB_KEY FROM ANY_STORED_PROCEDURE;". Красота!
  • Если забэкапить базу с доменами, но без таблиц, то она не разбэкапится (а я-то думал, что глюк с индексами в процедурах - единственный)
  • Насчёт возможных причин "Remote Interface not licensed" говорят следующее:
    • Это может быть старый gds32.dll - переустановить. Причём рекомендуют старое деинсталировать, а потом файлы руками грохнуть. Такой вот у них деинсталятор.
    • Возможно, в лицензионном файле не прописано - сами (!) предлагают прописать ID: ISC30811, certificate key: ca-9-3a-0.
    • HKEY_LOCAL_MACHINE/ Software/ Borland/ Database

    • Engine: настроить DLLPATH.
  • Помнится, когда пытались переустанавливать то ли 4 поверх 5, то ли 5 поверх 4, вылазила ошибка про "interbasecheck". Оказывается, надо залезть в совершенно левое место реестра - HK_CURRENT_USER/Environment - и исправить PATH с двоичного типа на строковый. Двоичным его делает Install Shield, в частности тот, который ставит Delphi или JBuilder и это - его официально признанный глюк.
  
 
« Предыдущая статья