Вести с полей
В одной популярной книге по программированию для домохозяек советуют каждый день что-нибудь выкидывать из вещей. Этот ценный совет применим и для сопровождения программных систем.
Решил выкинуть из IBProvider сомнительный метод чтения с I4-колонок с приведением NULL к нулевому значению.
Он используется, в том числе, для чтения значения колонок rdb$procedure_inputs и rdb$procedure_outputs (таблица rdb$procedures).
Хотя бы из кода, работающего с базами данных FB3.
Тем более, что запрос
select * from rdb$procedures x where x.rdb$procedure_inputs is null or x.rdb$procedure_outputs is null
для тестовой базы данных FB3 возвращает пустое множество.
Для тестовой базы IB4.2 (решил копнуть в начале огорода) этот запрос возвращает непустое множество. NULL-ы есть как в INPUTS так и в OUTPUTS.
С тестовой базой FB2.5.9 — ситуация аналогична IB4.2.
А у FB3 (повторюсь) — все OK.
Задумался, улыбнулся, сделал бакап базы FB2.5.9 и отресторил её на FB3.
Фух, все в норме 🙂