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

Платформы:

  • добавлена поддержка ldba на платформе Android (curses);
  • произведено портирование нового кода на платформу os2000.

Интерфейсы:

Интерфейс LINQT:

  • добавлена поддержка кодовых страниц в версиях с ядром 6.0 и 6.1.
Интерфейс ADO.NET:
  • добавлена поддержка .NET 4 beta 2.;
  • реализована интеграция с VS без Developer License Key;
  • добавлена интеграция с MONO2;
  • добавлена обработка commandType.StoredProcedure;
  • исправлена проблема с исключением NullArgumentException на Windows CE;
  • поправлена работа с датами в случае нерусской локали;
  • поправлено получение списка таблиц из-под пользователя отличного от SYSTEM.
Интерфейс OLEDB:
  • устранены проблемы при записи в БД значений, содержащих символ '?' и при чтении BLOB-значений, состоящих из нескольких порций.
Интерфейс PERL:
  • поправлена функциональность BindParamArray(), устранены мелкие ошибки.
Интерфейс ODBC:
  • скорректированы длины значений, возвращаемых ODBCGetData, а также выставление признака усечения данных.
Интерфейс JDBC:
  • отредактирована метаинформация о сборке;
  • исправлена работа подсистемы трассировки;
  • убрана генерация исключений при вызове метода setReadOnly(true).
Библиотека RELAPI:
  • доработана поддержка различных Window Manager'ов и фокусировка на различных платформах для QT 2,3,4;
  • введены новые настройки WM и их задание через переменные среды или параметры командной строки;
  • доработаны тестовые механизмы для проверки типа среды;
  • изменена форма выбора таблицы: внешний вид и фильтр;
  • поправлена работа с именем пользователя, содержащим кавычку.
Интерфейс DBExpress:
  • добавлено автоматическое создание псевдоимен в случае отсутствия имён у колонок (например, count(*)), устранена проблема с их дублированием;
  • поправлена обработка длины inout-параметра;
  • поправлена обработка возвращаемого курсора.
Интерфейс INTLIB:
  • исправлено перекодирование значений при отображении ограничений целостности CHECK.

Утилиты:

Утилита inl:
  • обеспечена корректная работа команды HEADER для многострочных запросов и в случае кодировки UTF-8.
Утилита loarel:
  • исправлено определение размера и процента загруженных данных для файлов больше 2Гб.
Утилита linadm:
  • доработаны механизмы поддержки и конфигурирования сервера репликации;
  • добавлены новые настройки и свойства БД.
Утилита lindeskX (под МСВС):
  • добавлена работа с BLOB в редакторах запросов;
  • в форме добавления внешней ссылки добавлен фильтр и увеличено кол-во видимых элементов при раскрывании комбобоксов;
  • добавлена новая функциональность - возможность настройки дерева;
  • введена возможность скрывать компоненты БД (таблицы, представления и пр.) из дерева инспектора, с главной панели, а также возможность назначать и менять горячие клавиши для вызова этих элементов; исправлены проблемы с показом BLOB-значений;
  • добавлена поддержка "колесика" в Win32 и диалогах редактирования;
  • исправлен показ BLOB формата JPEG;
  • исправлены ошибки при загрузке некоторых типов данных (в частности, BOOLEAN).
Утилита lhb:
  • поправлена выдача системных кодов ошибок;
  • система горячего резервирования и lhb доработаны с целью устранения уязвимого интервала при непрерывном изменении данных.
Утилита lhbx:
  • поправлено "подвисание" GUI в режиме "wait", доработана асинхронная работа.
Утилита testdbx:
  • поправлено тестирование списка объектов.
Утилита testdb:
  • исправлена проблема, возникавшая при тестировании индексов на системные таблицы;
  • поправлено несколько проблем с удалением BLOB-значений при тестировании базы с ключом -r в Linter Multiversion, в том числе возникавшие при таком тестировании проблемы с блокировкой страниц;
  • исправлена ситуация с поведением testdb в случае неверного физического размера страницы индексов.
Утилита gendb:
  • поправлена выдача системных кодов ошибок.
Утилита loltp:
  • обеспечена возможность работы утилиты loltp (поддержка распределенных запросов) под QNX.

Примеры:

  • доработан пример для Delphi.

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

  • Реализован новый механизм работы с BLOB-значениями (с помощью SQL-запросов).
  • Убрано обновление индексов на системные таблицы при создании/удалении вспомогательных временных таблиц СУБД ЛИНТЕР (для оптимизации скорости выполнения сложных запросов, создающих временные таблицы).
  • Доработано использование хинта /* +LAST */ для предиката BETWEEN (оптимизация скорости выполнения запросов).
  • Размер сообщений, которыми обмениваются компоненты СУБД, увеличен до 64K.
  • Изменена внутренняя структура буферов транслятора SQL (введен дополнительный буфер для временных структур), что позволило увеличить предельный размер подаваемых запросов.
  • Добавлена возможность кеширования транслированных запросов с целью избежать повторной трансляции (по умолчанию эта возможность отключена).
  • Обеспечен отладочный вывод стека вызовов при генерации dump-файла под Windows.
  • Для платформы QNX реализован новый вариант взаимодействия компонент СУБД через синхронные сообщения QNX и разделяемую память.

Устранение проблем:

  • Сделаны исправления для обеспечения корректного сохранения LHB результатов работы с BLOB.
  • Устранена потеря соединения на QNX при 4 серверах резервирования и 2 выключенных серверах.
  • Поправлена журнализация работы с BLOB в Linter Multiversion.
  • Сделано несколько исправлений подсистемы журнализации для обеспечения корректной работы ядра в режиме горячего резервирования.
  • Исправлен откат операций со ссылочной целостностью в курсорах для версий с ядром 5.9 и 6.0 (проблема, когда последовательность откатываемых курсоров влияла на результат отката).
  • Исправлена проблема отката транзакции в режиме exclusive, состоящей из единственной операции, завершившейся с ошибкой.
  • Исправлена проблема с видимостью записей, возникавшая в Linter Multiversion при активной работе с BLOB и ссылочной целостностью.
  • Исправлена проблема с очисткой записей в Linter Multiversion (некорректное преобразование версионных записей в неверсионные).
  • Запрещен ошибочно вызывавшийся откат изменений по каналу, выполнявшему очистку записей.
  • Исправлена проблема с присвоением значения поля добавляемой записи в триггере, если этого поля не было в списке INSERT.
  • Устранена избыточная блокировка таблицы в Linter Multiversion для SELECT FOR UPDATE (теперь делается блокировка только выбранных записей).
  • Исправлена оптимизация вычисления однопеременных предикатов при работе по составному индексу.
  • Исправлена проблема инициализации подсистемы событий.
  • Исправлена проблема, возникавшая в случае чередования в определенной последовательности SQL-запросов и команд работы с BLOB.
  • Добавлена проверка условий CHECK при быстрой загрузке данных.
  • Устранен случай возникновения ошибки при удалении таблицы, для которой создано глобальное событие.
  • Устранена проблема, возникавшая в случае, когда команда TEST TABLE подавалась первой после старта ядра СУБД.
  • Устранены проблемы при выполнении сложных запросов с аналитическими функциями.
  • Добавлено корректное закрытие файла LINTER.LOG в случае его очистки.
  • Поправлено использование индексов при вычислении результата функции NVL.
  • Устранена проблема с возможной отсылкой сообщения клиенту при исполнении триггера по событию.
  • Исправлена проблема работы циклических таблиц в версиях с ядром 6.х при отсутствии триггеров типа (after|before) delete ... for each row и наличии триггеров других типов.
  • Устранена проблема с транзакционными хранимыми событиями, когда после перезагрузки ядра не срабатывало событие на вставку.
  • Скорректирована выдача информации о значении параметра MBX под Windows.
  • Исправлена проблема, возникавшая при попытке записать двухбайтовый символ в однобайтовое поле на MSBF-платформах.
  • Устранена проблема, связанная с типом параметра при выполнении претранслированного запроса EXECUTE PROCEDURE для версий с ядром 6.x, а также проблемы с кодировками параметров в этом случае.
  • Исправлено некорректное поведение SQL-транслятора при ошибке оптимизации запроса с UNION ALL.
  • Исправлена обработка функции ENCODE_STRING в случае трех аргументов.
  • Устранена проблема с битовыми операциями над операндами разных типов.
  • Реализован вызов функции TOCHAR для типа BOOL из хранимых процедур.
  • Исправлена утечка памяти каналов ядра при выполнении сложного запроса с OR.