Релиз IBProvider v3.52.1

Привет всем.

Выпущен новый релиз IBProvider v3.52.1.

В процессе борьбы с Windows 10 build 1803 пришлось осваивать «Perfomance Profiler» из состава Visual Studio 2017. Ну и, среди всего прочего, он сказал, что в провайдере «много» вызовов системной функции VariantChangeType.

Самое интересное то, что в провайдере уже было все подготовлено для решения этой «проблемы». Поэтому избавиться от этих избыточных вызовов было достаточно просто.

«Perfomance Profiler» успокоился, но в целом это не помогло решить проблему с 1803 — она как тупила, так и продолжила тупить. Поэтому была откачена назад до сборки 1709.

Тем не менее, думаю, это все равно очень полезное обновление. Чем меньше провайдер завязан на внешний мир, тем он надежнее. (далее…)

Вести с полей

Похоже я слишком сильно перехвалил Windows 10.

После обновления до сборки 1803 начались «мелкие» проблемы.

1. Сломался таймер в виртуальных машинах с Windows XP. Но это удалось победить.

2. Вылезли адские тормоза при выполнении достаточно простых тестов. По замерам «на глаз» все замедлилось раз в пятнадцать.

В общем, два дня я с этими проблемами повоевал и откатился назад до сборки 1709.

ВендеКапец какой-то.

DOC: IBProvider и «Registration Free COM»

Написал новый документ IBProvider и «Registration Free COM».

В процессе написания ни одно животное не пострадало ничего в коде менять не пришлось. Что не может не радовать.

Windows 10. 99 дней без перезагрузки.

Поставлен личный рекорд продолжительности работы компьютера без перезагрузки — 99 дней.

Последний раз перезагружал в мае — добавлял память.

Надо отметить, что десятка (Pro) реально классная операционная система (после отключения автоматического обновления). Никаких признаков деградации из за столь продолжительного времени работы не наблюдаю. Vista, к примеру, после пары месяцев без перезагрузки начинала нещадно тупить.

Можно было бы и не перегружаться, но VS2017 после обновления (15.8.1) говорит что ей нужно.

Резюме

На устаканивание нового компьютера было потрачено полтора года.
1. Был битый комплект памяти.
2. У процессора пришлось отключить HT.
3. Пришлось обновлять биос у рейд-контроллера (переехал из старого системника). Не завелся после какого-то обновления Win10.
4. Рейдом на маме (X99, за очень много денег) пользоваться не получилось — разваливается после перезагрузки.

PS. Заодно, наконец-то, убъется намертво зависший FB3. Он тем потоком уже 312 часов накрутил.

Кстати, да. 20 лет.

Привет всем.

Сегодня сообразил, что вчера (13 августа) стукнуло 20 лет как я победил первую сложную проблему в программировании — заставил проводник Windows (NT4) без падений отрывать мое дерево объектов, подгружаемых из базы данный (InterBase 4).

Ну как победил, просто заменил оконную библиотеку (OWL/MFC) своим велосипедом. Там еще много багов оставалось (в STL, неприспособленная к многопоточности gds32.dll, компилятор BC5 глючил), но наверху сжалились и программа на некоторое время перестала падать.

Я тогда понял — баги есть не только в моем коде. И надо просто брать и переписывать чужой код.

После этой маленькой победы дело пошло на лад. Через пару месяцев я понял как нужно проектировать базы данных. А это, в свою очередь, привело к написанию такой штуки как IBProvider.

Вести с полей

С 15 июня было запущено большое тестирование. Все тесты основой тестовой систему (их там за 8 млн).

Сразу на двух базах — с первым и третьим диалектами. То есть работают два тестовых процесса. В каждом по 4 потока.

Эксперимент не является «чистым», поскольку на этом сервере попутно много раз запускались другие многодневные тесты. Разумеется на других файлах баз данных.

В качестве подопытных кроликов, используются IBProvider 3.50.1.28665 x64 и Firebird 3.0.4.32985 x64 SS.

Каждый час отрабатывает сборка мусора для каждой из баз данных.

Пока обнаружена только одна новая «проблема». Достаточно забавная. С базой данных первого диалекта.
(далее…)

Новый триал IBProvider 3.52.0.28907

Новую сборку можно смело назвать «на что я угробил лето 2018 года».

Реализована поддержка нового завершения строк Firebird 3.0.4 — ‘\r’.

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

RETURNING … INTO_ROWSET …

В IBProvider, кучу лет назад, было добавлено расширение для запросов с RETURNING, позволяющее явно указывать имена для OUT-параметров.

В процессе перетряхивания связанного кода появилась мысль — можно еще добавить поддержку «RETURNING … INTO_ROWSET …», которая будет возвращать OUT-параметры в виде результирующего множества.

Будем думать…

Новый триал IBProvider [3.51.0.28770]

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

UPD. [2017-07-16] Сборка ушла в релиз.

О как (fb-devel)

Вот так проснешься утром, проверишь почту, а там:

Adriano dos Santos Fernandes:
It seems important to (also) run the tests with the debug build.

У меня такое уже один раз было. Надо еще раз проснуться.