Требования к продукту
Конечный продукт должен удовлетворять следующим требованиям:
- Скорость работы в худшем случае должна быть не более чем на 10–15% меньше, по сравнению с работой с MS SQL Server (при том же количестве подключенных пользователей на том же оборудовании)
- Не должны производится никакие изменения в самой программе 1С.
- Желательно избежать изменений в коде сервер PostgreSQL.
- Конечный продукт должен быть очень хорошо оттестирован, т.к. ошибки при работе с базой данных могут привести к очень плачевным результатам.
Что сделано
В качестве альтернативной базы была выбрана PostgreSQL, на данный момент это одна из лучших бесплатных баз данных, которая способна составить конкуренцию продукту MS SQL Server. Так же учитывалось, что в сторону этой базы свой выбор уже сделала компания 1С, поддержав PostgreSQL в версии 1С 8.1. Это позволяет надеяться, что качество работы PostgreSQL будет на высоте.
Было принято решение, что сам транслятор будет подключаться к ODBC драйверу на клиентских машинах:
Мы модифицировали стандартный ODBC драйвер для PostgreSQL так, чтобы на запросы 1С он выдавал себя за драйвер MS SQL Server (в частности, возвращается другая версия продукта), согласно лицензии PostgreSQL все исходные коды модифицированного драйвера будут выложены в открытый доступ. В код драйвера ODBC добавлена загрузка дополнительной dll (закрытая часть) при помощи которой преобразуются SQL-запросы из диалекта T-SQL (используемого в MS SQL Server) в pl/pgSQL (PostgreSQL).