20.04.2012
Список изменений в СУБД ЛИНТЕР от 20.04.2012

Ядро СУБД и транслятор SQL:

  • Реализован запрет удаления базовых таблиц/VIEW, на которые ссылаются VIEW (в случае обычного DROP TABLE/VIEW), либо их каскадное удаление (в случае DROP TABLE/VIEW CASCADE), что обеспечивает целостность базы и устраняет возможность противоречий между зависимыми друг от друга таблицами и VIEW в момент операций, которые могут привести к таким противоречиям.
  • Добавлен синтаксис GROUP BY первичный_ключ, который дает возможность писать GROUP BY T.PK (где PK - первичный ключ таблицы T) вместо GROUP BY T.C1, T.C2,... и делать запросы с группировкой значительно более читабельными, убирая повторения всех неагрегированных столбцов ответа из конструкции GROUP BY.
  • Расширен формат конструкции CASE: добавлена возможность перечислять в конструкции WHEN несколько значений. Также добавлена возможность выбора в конструкции CASE в зависимости не только от скалярного значения, но и от конструктора записи.
  • Расширена функциональность обработки строк: добавлена функция OVERLAY для замены подстроки в строке на указанную строку. Исходная строка, искомая подстрока и заменяющая строка могут быть выражениями.
  • Увеличена скорость операций поиска по индексам (в отдельных случаях — в 2 раза по сравнению с предыдущими версиями).
  • Добавлена поддержка псевдозначений LOCALTIME, LOCALTIMESTAMP, CURRENT_DATE, CURRENT_TIME для повышения удобства работы с локальным временем.
  • Разрешен останов ядра СУБД при работе каналов фоновой очистки записей без выдачи предупреждения (для Linter Multiversion).
  • Поправлены и унифицированы форматы вывода дат в логах ядра и testdb.
  • Внесены исправления в ситуацию с резким замедлением чтения длинных BLOB-значений в случае, когда интерфейс нижнего уровня не указывает явно номер BLOB-столбца.
  • Увеличен размер стека сортировки для иерархических запросов.

Улучшения в работе:

  • С окончанием обработки журнала при восстановлении (когда возможно игнорировать локальный сбой и продолжать обработку).
  • С пропуском удаления после рестарта файлов таблицы, создание которой было прервано.
  • С обработкой BLOB в журнале при горячем резервировании.
  • При некоторых повреждениях индексов;
  • С BLOB-файлами в случае старого (непрерывного) формата bitmap.
  • С пересчетом номеров страниц в случае нового (разрывного) формата bitmap.
  • С восстановлением по журналу базы, содержащей файлы длиннее 2 Гб.
  • С использованием одной последовательности (SEQUENCE) разными каналами одного соединения.
  • С откатом триггерных/процедурных каналов.
  • С быстрой загрузкой данных в случае длинного буфера.
  • С определением размера пула сортировки в случае увеличенного RECORD SIZE LIMIT.
  • Функций DIFFRENCE и SOUNDEX с параметрами в кодировке, отличной от CP866.
  • С загрузкой BLOB-значений длиннее максимально разрешенного размера.
  • С созданием/удалением индексов параллельно с некоторыми другими операциями.
  • С оптимизацией выполнения запросов с множественными соединениями, содержащими обращения к столбцам ROWID и ROWTIME.
  • С сортировкой иерархических запросов на платформе QNX.
  • С пулом памяти ядра при выполнении команды TEST TABLE.
  • С обработкой некорректно описанных кодовых страниц.
  • С блокировкой/разблокировкой страниц при работе с глобальными событиями.
  • С сохранением многострочного текста хранимых событий.
  • С работой ключа /OUTFLIMIT на платформе Win32.
  • С автоматическим устранением некоторых трудностей в базе (несоответствие битовой карты файла базы распределению страниц разных типов в нем).

Безопасность и шифрация данных:

  • Добавлена возможность использования криптоалгоритмов из библиотеки openssl для шифрования данных и подсчета контрольных сумм, а также настройки использования этих возможностей.
  • Добавлена поддержка ГОСТ-протокола и алгоритма шифрования AES256 в сетевых утилитах.
  • Добавлена функция использования openssl для горячего резервирования.
  • Добавлена ssl-аутентификация клиента и сервера с использованием сертификатов удостоверяющих центров для TLS протокола и поддержка листов отозванных сертификатов.

Платформы:

  • Реализовано выделение разделяемой памяти для сортировки через механизм mmap (вместо менее эффективного и менее надежного ipc sysv) для платформы Linux.
  • Усовершенствована сборка дистрибутива ЛИНТЕР под платформу Android, в том числе кросс-сборка на платформе Win32.
  • Внесены поправки при тестировании дистрибутива ЛИНТЕР под Sparc Solaris, собранного компилятором gcc.

Интерфейсы:

LinQT:

  • Добавлен новый интерфейс работы с BLOB-значениями.
  • Добавлены новые примеры, в том числе пример использования нового интерфейса работы с BLOB.
  • Скорректирована обработка ситуации "нет данных".

PHP:

  • Добавлена поддержка php 5.4.

Intlib:

  • Добавлено автоопределение кодировки UTF8.

ADO.NET:

  • Улучшена работа с перемещением буфера параметра при его расширении.
  • Расширен класс LinterDbConnectionStringBuilder — добавлена поддержка значений по умолчанию.

JDBC:

  • Увеличен стек потоков во избежание наблюдавшихся проблем.

Ruby:

  • Улучшена работа функции GetAnswerInfo (поправлен формат массива с описаниями столбцов – теперь индексами являются не имена, а номера).

Язык хранимых процедур:

  • Добавлена поддержка DEFAULT-значений для параметров типов BYTE и VARBYTE (с помощью конструкции HEXTORAW).
  • Улучшена передача константного значения для параметра типа VARCHAR при вызове процедуры из запроса.

Утилиты:

lindeskx:

  • Расширен набор обрабатываемых команд SQL-окна — добавлены команды утилиты inl.

dbstore:

  • Реализована опциональная выгрузка базы в единый файл (ключ -sf).

testdb:

  • Исключены случаи преждевременного прекращения проверки индекса.

loarel:

  • Улучшена работа с быстрой загрузкой таблицы с полем типа BOOLEAN.
  • Улучшена диагностика проблем при загрузке таблицы с AUTOINC-полем.

hrserver:

  • Обеспечено быстрое подключение интерфейса после его отключения.
  • Реализована передача информации о контрольных точках между серверами для всех случаев.

Документация:

Обновлены следующие файлы документации:

  • Установка СУБД на платформе Win32.
  • Установка СУБД на платформе типа UNIX, QNX.
  • Запуск и останов СУБД на платформе Win32.
  • Запуск и останов СУБД на платформе UNIX, QNX.