Костыли для типа данных «массив»

Привет всем.

На днях провел эксперименты, проверяющие работоспособность внешнего исправления для ошибки сервера (FB/IB) — CORE-1588.

Краткое описание ошибки — сервер получает и возвращает VARCHAR-массивы как CSTRING-массивы.

К счастью, этот баг имеет ограниченную область действия — в базу, в конечном итоге, пишутся VARCHAR-массивы. Это можно проверить поэлементным чтением VARCHAR-массивов.

Решение, как и было предположено ранее, заключается в самостоятельном формировании блоба массива.

Извращение, конечно. Хотя бы потому, что нужно учитывать тип процессора, на котором работает сервер базы данных. Эти сведения можно получить через информационное свойство «isc_info_implementation».

Самое приятное то, что в сервере предусмотрена лазейка для этого варварского внешнего формирования блоба с данными массива.

Будет интересно соорудить весь необходимый код и посмотреть на его работу.

Leave a Comment