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.
- устранены проблемы при записи в БД значений, содержащих символ '?' и при чтении BLOB-значений, состоящих из нескольких порций.
- поправлена функциональность BindParamArray(), устранены мелкие ошибки.
- скорректированы длины значений, возвращаемых ODBCGetData, а также выставление признака усечения данных.
- отредактирована метаинформация о сборке;
- исправлена работа подсистемы трассировки;
- убрана генерация исключений при вызове метода setReadOnly(true).
- доработана поддержка различных Window Manager'ов и фокусировка на различных платформах для QT 2,3,4;
- введены новые настройки WM и их задание через переменные среды или параметры командной строки;
- доработаны тестовые механизмы для проверки типа среды;
- изменена форма выбора таблицы: внешний вид и фильтр;
- поправлена работа с именем пользователя, содержащим кавычку.
- добавлено автоматическое создание псевдоимен в случае отсутствия имён у колонок (например, count(*)), устранена проблема с их дублированием;
- поправлена обработка длины inout-параметра;
- поправлена обработка возвращаемого курсора.
- исправлено перекодирование значений при отображении ограничений целостности CHECK.
Утилиты:
Утилита inl:
- обеспечена корректная работа команды HEADER для многострочных запросов и в случае кодировки UTF-8.
- исправлено определение размера и процента загруженных данных для файлов больше 2Гб.
- доработаны механизмы поддержки и конфигурирования сервера репликации;
- добавлены новые настройки и свойства БД.
- добавлена работа с BLOB в редакторах запросов;
- в форме добавления внешней ссылки добавлен фильтр и увеличено кол-во видимых элементов при раскрывании комбобоксов;
- добавлена новая функциональность - возможность настройки дерева;
- введена возможность скрывать компоненты БД (таблицы, представления и пр.) из дерева инспектора, с главной панели, а также возможность назначать и менять горячие клавиши для вызова этих элементов; исправлены проблемы с показом BLOB-значений;
- добавлена поддержка "колесика" в Win32 и диалогах редактирования;
- исправлен показ BLOB формата JPEG;
- исправлены ошибки при загрузке некоторых типов данных (в частности, BOOLEAN).
- поправлена выдача системных кодов ошибок;
- система горячего резервирования и lhb доработаны с целью устранения уязвимого интервала при непрерывном изменении данных.
- поправлено "подвисание" GUI в режиме "wait", доработана асинхронная работа.
- поправлено тестирование списка объектов.
- исправлена проблема, возникавшая при тестировании индексов на системные таблицы;
- поправлено несколько проблем с удалением BLOB-значений при тестировании базы с ключом -r в Linter Multiversion, в том числе возникавшие при таком тестировании проблемы с блокировкой страниц;
- исправлена ситуация с поведением testdb в случае неверного физического размера страницы индексов.
- поправлена выдача системных кодов ошибок.
- обеспечена возможность работы утилиты 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.