I think this news will make some of you happy: Teerank now use SQlite3!
The main purpose of Teerank was to have a "real" dataset to compare SQL database and file database. Even tho the result was already pretty much obvious, I still wanted to compare. And for Teerank use case, SQL databases clearly win.
It took me more than 2 weeks to migrate the whole codebase, mostly because the code was tightly coupled with the old database. However, moving to SQlite makes the code simpler, and way more reliable. The diff pretty much speak by itself:
59 files changed, 2093 insertions(+), 5028 deletions(-)
It is more or less a rewrite of the whole project. By a careful use of indexes, performance are almost the same as before for the CGI, and way better for the builtins binaries. This changes opens a lot of possibility for futur functionalities, and it will be far more easier to contribute to the project.
One last note: At the beginning I've used the SQlite API directly but it was really verbose and redundant. I decided to abstract it (see core/database.h). Doing so saved a little less than 400 lines while making the code way more readable.