InterBase: тормозология и глюконавтика - Выдержки из 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 и это - его официально признанный глюк.