Berkeley DB vs SQLite
http://www.oracle.com/us/corporate/press/063695Oracle пишет: SQLite Tools integration means that all tools that work with SQLite will also work with Oracle Berkeley DB, making it easier to develop, deploy and manage Oracle Berkeley DB applications and databases;
Eserv есть как раз такой "tools that work with SQLite". Посмотрим-посмотрим, как это маркетинговое заявление соответствует действительности...
Верно, НЕ соответствует. Вот например функции sqlite3_table_column_metadata нет. Они с какой версии SQLite списывали API?
Ладно, без этой функции компиляция проходит. Но вот при открытии любой базы, созданной sqlite3, ошибка "unexpected file type or format". Значит и формат баз другой.
В общем на прозрачную замену не годится. Но все равно интересно, к чему приведет эта усиливающаяся война встраиваемых БД. Когда Oracle купила SleepyCat, то это казалось обычным "недружественным поглощением", которыми славятся большие корпорации, и что на BDB можно ставить крест. А получилась вот какая история...
UPD: Если просто переименовать libdb_sql50.dll из BDB в sqlite3.dll и удалить все старые *.db3, чтобы создались в новом формате, то Eserv будет работать. Однако с опциями по умолчанию BDB никак не годится на замену SQLite3. Достаточно сказать, что созданный тестовый ящик после добавления нескольких папок и писем стал занимать аж 600 Мб на диске (без собственно писем, только индекс). А настоящему SQLite3 для того же достаточно всего 1Mb, т.е. разница почти на три порядка. Скорость создания БД и добавления писем в варианте с BDB тоже не впечатляет. Точно не измерял, но на глаз BDB5 раз в 10 медленнее чем SQLite3 (что при таких размерах БД не удивительно).