четверг, 21 августа 2008 г.

Firebird 1.5.3

В релизе Firebird 1.5.3 исправлены следующие ошибки:
  • Возможны повреждения составного индекса.
  • Необязательное вычисление последнего аргумента в функции COALESCE.
  • Использование параметризованного поиска с операцией SUM() приводило к некорректным результатам.
  • UPDATE с параметрами содержащий выражение CASE генерировал исключение SQLCode -804 exception ("Data type unknown"). Исправлено в Firebird 1.5.3
  • COALESCE/CASE приводили к ошибке при обращении к BLOB-полям.
  • An access violation мог происходить в fcblient.dll v1.5.2 при отключении от сервера.
  • Генераторы могли быть проинициализированы неверными значениями при восстановлении из бекапа только метаданных.
  • Именованные точки сохранения (SAVEPOINT) не завершались при вызове COMMIT RETAIN.
  • Разрешены конфликты между однострочными и многострочными комментариями.
  • Если таблица содержит вычисляемую колонку массива блобов, то при restore первая колонка таблицы будет установлена в NULL.
  • Сервер версии ниже Firebird 1.5.3 зависал если не удавалось подключиться к security.fdb
  • Fbudf- функция AddMonth()некорректно обрабатывала Январь.
  • FOR EXECUTE STATEMENT ... DO SUSPEND в PSQL приводило к проблемам.
  • Сравнение строк с кодовой страницей NONE приводило к ошибке.
  • Прочие исправления.

Firebird 1.5.4

В релизе firebird 1.5.4 произведены следующие изменения:

  • В Firebird 1.5.4 поддерживается сборка Firebird Classic Server и Firebird SuperServer для платформы HP-UX11.
  • Исправлен баг EXECUTE STATEMENT вызывавший core dump в хранимых процедурах.
  • Firebird 1.5.4 sub-release не добавил новой функциональности.

Firebird 1.5.5

Firebird 1.5.5 - это финальная версия линейки Firebird 1.5. В Firebird 1.5.5 исправлены следующие ошибки:
  • На Windows Vista падал Firebird 1.5 control panel. При установке на висту апплет не устанавливается.
  • Services Manager и gsec обрезают поля First/Middle/Last Name до 17 символов вместо 31.
  • Пустые Database Parameter Block (DPB) или Services Parameter Block (SPB) обрушивают сервер.
  • Закрыты уязвимости, найденные RISE Sequrity.
  • Сервер падал если имя вторичного файла базы данных Firebird 1.5 превышало размер в 127 символов.
  • Возможное переполнение буфера при обращение через Firebird API к информации о БД с очень длинным путем.
  • Запрос ронял сервер:
    insert into relationx select * from relationy
  • Запрос для первого диалекта вызывал core dump
    select distinct(1.0/1) from rdb$database

Firebird 1.5 - Краткий обзор возможностей

Firebird 1.5 – Изменения в DSQL (язык запросов)

  • Выражения и функции могут передаваться в качестве аргументов хранимой процедуры.
  • Поддержка CASE … WHEN … THAN в запросах.
  • Добавлены функции COALISE, NULLIF для работы с NULL в строках.
  • Улучшение сортировки: поддержка выражений в ORDER BY и NULLS FIRST/NULLS LAST для помещения пустых значений в начало или конец выборки.
  • SELECT FIRST может принимать пустой аргумент. Результат выборки так же будет пустым.
  • Маркер – для комментариев в одну строку может помещаться сразу после запроса в той же строке:
    WHERE COL1 = 9 OR COL2 = 99 -- OR COL3 = 999

Firebird 1.5 - Изменения в PSQL (хранимые процедуры и триггеры)

  • EXECUTE STATEMENT – позволяет формировать и выполнять запросы динамически.
  • LEAVE – аналог BREAK может использоваться для WHILE, FOR SELECT and FOR EXECUTE.
  • Улучшенная обработка ошибок: установка текста сообщения в runtime для существующего исключения, получение кода ошибки, перезапуск исключения внутри обработчика ошибки.
  • Явная блокировка записи WITH LOCK.
  • Поддержка именованных точек сохранения SAVEPOINT (Nested transaction).
  • Поддержка планов для триггеров.
  • Объявление и установка значения переменной в одну строку:
    DECLARE my_var INTEGER = 123;
  • Допустимы пустые блоки BEGIN … END

Firebird 1.5 – Новые контекстные переменные

  • Новые контекстные переменные CURRENT_CONNECTION и CURRENT_TRANSACTION
  • ROW_COUNT позволяет получить количество обработанных строк последней DML операцией. Для последнего SELECT возвратит 0. Контекстная переменная доступна в Firebird 1.5 PSQL.
  • SQL_CODE и GDS_CODE доступны в PSQL.
  • INSERTING, UPDATING, DELETING – Позволяют узнать тип операции в триггере. Используются для триггеров, которые были назначены на обработку нескольких действий.

Firebird 1.5 – Общие изменения

  • Можно менять имена у индексов, поддерживающих ссылочную целостность.
  • Максимальное число индексов на одну таблицу в Firebird 1.0 увеличено с 64 до 256.
  • Концепция Multi-action триггеров, позволяют использовать один триггер на несколько событий (inser/update/delete).
  • Добавлена возможность пессимистической блокировки.
  • SuperServer кеширует sequrity.fdb до момента отключения последнего клиента.
  • Улучшен вывод SQL ошибок.
  • Версия Firebird 1.5 ODS = ODS 10.1.
  • Новый тип данных BIGINT – соответствует стандарту SQL-99.
  • RECREATE VIEW – если находит то удаляет старое представление и создает новое.
  • CREATE OR ALTER {PROCEDURETRIGGER} – создает новый или изменяет+компилирует существующий без его предварительного удаления.
  • Разрешен NULL в ограничениях UNIQUE и в UNIQUE-индексах.
  • Добавлены новые наборы символов.

Firebird 1.5 - Переименована клиентская библиотека

Клиентская библиотека переименована в fbclient.dll

Firebird 1.5 - Новая кодовая база

Языковые улучшения, управление памятью, портирование кода Firebird 1.5 с языка С на C++.

Firebird Classic Server и Firebird Embedded Server

Два важных добавления для Windows платформ - Firebird Classic Server и Firebird Embedded Server.

Firebird Classic Server

В Firebird 1.5 впервые появилась версия Firebird Classic Server для Windows.Данный тип сервера позволяет задействовать мощь многоядерных процессоров и отмечен как экспериментальный.

Firebird Embedded Server

Firebird Embedded Server - DLL совмещающая в себе клиент и сервер. Данная версия Firebird 1.5 специально предназначена для встраиваемых БД.