Костыли для типа данных «массив»
Привет всем.
На днях провел эксперименты, проверяющие работоспособность внешнего исправления для ошибки сервера (FB/IB) — CORE-1588.
Краткое описание ошибки — сервер получает и возвращает VARCHAR-массивы как CSTRING-массивы.
К счастью, этот баг имеет ограниченную область действия — в базу, в конечном итоге, пишутся VARCHAR-массивы. Это можно проверить поэлементным чтением VARCHAR-массивов.
Решение, как и было предположено ранее, заключается в самостоятельном формировании блоба массива.
Извращение, конечно. Хотя бы потому, что нужно учитывать тип процессора, на котором работает сервер базы данных. Эти сведения можно получить через информационное свойство «isc_info_implementation».
Самое приятное то, что в сервере предусмотрена лазейка для этого варварского внешнего формирования блоба с данными массива.
Будет интересно соорудить весь необходимый код и посмотреть на его работу.