Archive for 'IBProvider'
Доступен для скачивания новый IBProvider Trial с исправленной ошибкой в libtommath. Это была моя бага. Исправление можно посмотреть здесь. Как оказалось, чтение за последним элементом массива в mp_div, это не бага, а фича неотъемлемая часть алгоритма. Пришлось вернуть назад условие, модифицированное в декабре 2016 года. И немного по другому решить первоначальную проблему (см. get_safe). —- […]
В FB3 затащили внешнюю библиотеку для работы с большими числами — libtommath. Затащили как есть. Только за это хочется взять черенок от лопаты…
Вышла и доступна для скачивания! Скачал, поставил, перекомпилировал IBProvider. Работает!
Неделю назад обнаружил, что нагрузочное тестирование 32-битной сборки зависло. Причем висит уже около суток. Состояние процесса показывало, что процесс в пике выедал практически все 4GB адресного пространства. Я было собрался просто убить процесс отмахнуться – «ну бывает, да», но потом решил, что такой подход ни к чему хорошему не приведет. И подключился к тесту отладчиком.
В новый триал (v3.38.0.25055) внесены следующие изменения и исправления: 1. Реализован контроль длин названий объектов в XSQLVAR (relname_length, sqlname_length, aliasname_length). До этого было обрезание при превышении максимального значения (32 или 68 байт) и обнуление отрицательного значения. Так что если серверный клиент вернет в этих полях некорректное значение, то теперь провайдер будет ругаться.
Сегодня один наш турецкий друг прислал замечательную ошибку, полученную при работе через собственный FB-клиент провайдера (dbclient_type=fb.direct). Говорит — с gds32.dll такой проблемы нет. Связанный кусок SQL запроса: Ответил, что gds32.dll обрезает строки, а провайдер обрабатывает строки (которые не влазят в XSQLVAR) как ошибки. И сообщил о своих мыслях избавиться в собственном клиенте от XSQLDA/XSQLVAR. Связанный […]
В настоящее время идет достаточно злобная массированная ревизия и переработка относительно старого кода, связанного с управлением OLE DB свойствами. В процессе обнаруживаются баги, дыры и костыли. Про первое и второе говорить особо смысла нет. А вот про третье — можно 🙂 Удалено свойство инициализации «free_threading«, которое влияло на значение информационного свойства «Data Source Object Threading«.
Все начиналось достаточно безобидно — я поправил в описании информационного свойства «Maximum Row Size» значение с 65536 на 65565. Потом сообразил, что надо бы поправить эту константу в коде IBProvider. Потом пришла мысль, которая должна была прийти в самом начале — «надо бы посмотреть на сайте FB». Посмотрел. Maximum row size = 64KB Maximum number […]
Что-то я увлекся и перестал следить за состоянием FB3. За шесть дней набежало.
Выложено очередное обновление IBProvider — версия 3.36 Примечательно, что сегодня стукнуло 17 лет с начала разработки этой штуковины. Хорошо помню что и в каком (ужасном) виде было создано в первые дни. Что касается новой версии, то за кулисами осталась безуспешная попытка создать «суперпровайдер», то есть DLL с самостоятельно живущими потоками. К сожалению, выгрузка DLL ведет […]