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

Платформы:

  • Добавлена поддержка RTOS-32.
  • Исправлены проблемы, связанные с особенностями работы системных вызовов на платформе QNX.

Интерфейсы:

ADO.NET:

  • Добавлена поддержка .NET 4.

OleDB:

  • Исправлены проблемы с чтением значений символьных полей длиной более 255 байт и BLOB-полей через ADO.

DBExpress:

  • Добавлена поддержка DBExpress 2, 3.

ODBC:

  • Доработано выделение памяти для преобразования длинных запросов.
  • Исправлена работа с длинными ответами.

JDBC:

  • Исправлены проблемы синхронизации.

Утилиты:

Lindeskx:

  • Сделаны исправления и дополнения браузера запросов.
  • Исправлены зацикливания в локальных циклах обработки сообщений.
  • Введено ограничение на один уровень вложенности асинхронных запросов.
  • Добавлена кнопка останова запроса в расширенный редактор запросов, вместо окна с кнопкой прервать, добавлена обработка ошибок разрыва соединения.
  • Исправлены проблемы с экспортом/импортом NULL-значений в BLOB-полях.
  • Устранены несколько проблем с обработкой апострофов.
  • Добавлена поддержка формата CSV, в который Excel экспортирует текстовые таблицы – поддерживаются импорт и экспорт, а также корректно обрабатываются разделители, являющиеся частью строки данных.
  • Исправлено значительное количество мелких ошибок.
  • Поправлено получение метрики шрифта во избежание ситуации, когда не полностью показывался текст в колонке (при автоподборе ширины полей).

Linadm:

  • Поправлен автоматический запуск сервера репликации при автоматическом запуске БД.
  • Поправлено управление сервером репликации.
  • Поправлен запуск репликации для БД по умолчанию.

Lhb:

  • Поправлена обработка ошибочных ситуаций при архивации и сохранении, в частности, теперь корректно закрывается соединение с ядром, и закрываются открытые файлы.
  • Добавлена в lhb-архивы информация, необходимая для обработки начала секции журнала.

Inl:

  • Исправлены проблемы при переполнении буфера имени и пароля.
  • Исправлено поведение в случае обнаружения символа табуляции после символа завершения команды (точки с запятой).
  • Поправлена многоязыковая поддержка.

Testdb:

  • Исправлена выдача номера проблемной страницы данных при некоторых ошибках.

Gendb:

  • Исправлена некорректная работа утилиты с русскими именами каталогов при сборке её некоторыми компиляторами.
Сетевой драйвер клиента (dbc_tcp):
  • Исправлена проблема с разрывом соединения (по ошибке 1069) через несколько суток работы из-за переполнения признака watchdog.

Dbf2lin:

  • Переделан механизм выдачи сообщений, добавлена поддержка выбора языка интерфейса в зависимости от текущей локали.

Lin2dbf:

  • Переделан механизм выдачи сообщений, добавлена поддержка выбора языка интерфейса в зависимости от текущей локали.

Schema:

  • Переделан механизм выдачи сообщений, добавлена многоязыковая поддержка.

EWC (конвертер из формата ERWin):

  • Переделан механизм выдачи сообщений, добавлена многоязыковая поддержка.

Spc:

  • Переделан механизм выдачи сообщений, добавлена многоязыковая поддержка.

Crmsg:

  • Исправлены проблемы при генерации C-файла сообщений.

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

  • Для создания внешних ключей теперь необходимо согласно стандарту наличие привилегии REFERENCES (вместо ранее использовавшейся привилегии ALTER). Также добавлена новая привилегия BACKUP, которая разрешает пользователю оперативное архивирование БД или её отдельных объектов.
  • Расширен и скорректирован вывод информации о размерах системных очередей при старте ядра.
  • Расширены информационные структуры ядра СУБД в связи с возможностью использования буферов большого размера для межзадачного обмена.
  • Добавлена новая стратегия работы по составному индексу в случае значительного различия в количестве записей в стартовых множествах операндов — сканирование индекса меньшей таблицы и для каждого выбранного значения поиск в индексе большей таблицы. Также учитываются уже вычисленные ответы на однопеременные предикаты и в случаях, когда это выгодно, ответы на двухпеременные предикаты.
  • В целях оптимизации работы с пулом страниц ядра ограничено число модифицированных страниц временных таблиц/рабочих файлов в пуле.
  • Расширены возможности работы с локальным временем. Разрешен расширенный формат аргумента «часовой пояс» в функциях TO_GMTIME и TO_LOCALTIME. В результате реализованы функции преобразования времени по Гринвичу к локальному и обратно, с учетом сезонного смещения на запрашиваемую дату. Упрощено написание запросов, зависящих от летнего/зимнего времени.
  • Изменён алгоритм выбора фразового фильтра по умолчанию для BLOB-столбца. Благодаря этому, в частности, можно индексировать данные BLOB в кодировках, отличных от CP866, CP1251 и KOI8-R.
  • Добавлена функциональность пользовательских сообщений в AUDIT (однократная запись пользовательского сообщения с заданным текстом и маркировка всех сообщений от текущего соединения заданным текстом в поле USERTEXT).
  • Разрешены выражения, в том числе и неконстантные, в конструкции DEFAULT. Разрешена конструкция «GENERATED BY DEFAULT (выражение)». Для столбцов GENERATED BY DEFAULT или имеющих DEFAULT-выражения реализована такая же возможность удаления и модификации этих выражений, как и для константных DEFAULT-значений.
  • Добавлена проверка целостности претранслированных запросов перед выполнением их ядром (в дополнение к аналогичной проверке, выполняемой клиентской частью при привязке параметров).

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

  • Устранение проблем журнализации и работы ядра в режиме горячего резервирования:
    • при работе с BLOB по параллельным курсорам в режиме READ COMMITTED;
    • с обработкой AUTOINC-значений при теплом рестарте;
    • с пропуском отметок об обновлении описателей элементов системных таблиц;
    • с несовпадением количества версий в описателе таблицы и в файле данных на резервной БД;
    • с неверным счетчиком числа столбцов в составном первичном ключе;
    • с накоплением файлов журнала при горячем резервировании после выполнения операций по системному каналу;
    • с ошибочными действиями в случае несовпадения при проверке контрольной суммы;
    • с рассогласованием очередей и файлов БД в случае удаления временных таблиц.
  • Устранение проблем с обработкой запросов:
    • с использованием подзапросов в конструкции CASE;
    • с вычислением предикатов полнотекстового поиска в иерархических запросах;
    • с работой стратегии слияния индексов в случае наличия длинных записей;
    • с вычислением по составному индексу предикатов IS [NOT] NULL;
    • с задержкой использования ответа на одно из стартовых множеств при стратегии одного индекса, что в некоторых случаях приводило к значительному увеличению промежуточных результатов;
    • при вычислении сложных запросов с явными JOIN и внешними ссылками;
    • при вычислении агрегатной функции MAX по составному индексу.
  • Устранение проблем некорректной работы с записями длиной больше 4K и с длинными запросами:
    • с выполнением запроса с группировкой и размером записи результата больше 4K.
  • Исключены лишние проверки на уникальность при создании primary и unique ключей, что в некоторых случаях ускорило создание таких ключей в несколько раз.
  • Исправлены проблемы с кодировками при получении описаний столбцов.
  • Поправлена работа с кэшем устройств.
  • Оптимизирована работа с очередью столбцов при обращении вразброс к таблицам с большим числом столбцов.
  • Операции пакетной загрузки теперь учитывают специфику «циклических» таблиц.
  • Исправлено сравнение переменных вещественных типов при работе по индексам: теперь такое сравнение выполняется с той же точностью, что и во всех остальных случаях.
  • В Linter Multiversion добавлены проверки корректности и актуальности номеров каналов.
  • В Linter Multiversion поправлена работа запросов с модификатором NOWAIT — устранены случаи перехода в режим ожидания.
  • Исправлено вычисление максимально разрешенной длины записи в Linter Multiversion во избежание проблем с распаковкой записей.
  • Устранены несколько проблем, связанных с кэшем претранслированных запросов.
  • Поправлено несколько проблем, связанных с конструкциями DEFAULT и CHECK.
  • Исправлена ошибка работы с контекстами каналов.
  • Убрано полное блокирование индекса при работе команды CORRECT INDEX — теперь блокируется только один элемент индекса.
  • Исправлены проблемы с порчей элементов системных очередей после неудачных поисков, приводившие к ошибкам в системных таблицах.