On Friday, Jul 18, 2003, at 18:20 Europe/Helsinki, Gregory Hartman wrote:
Then I noticed that you were planning to integrate Dovecot with a SQL database.
Is this work in progress?
Do you have a schema?
Is there some way that I could help?
I was playing a bit with Oracle backend since I'll have to do some Oracle work anyway. OCI (Oracle Call Interface) is quite horrible to work with directly, so I was trying to figure out some easier ways to use it. I found libsqlora8 which was a bit better, but still not exactly what I wanted. I wrote a few functions on top of that which my current code uses. I've later written still somewhat easier API directly on top of OCI for another project, which I should port to Dovecot.
I'd want so support at least both Oracle and PostgreSQL, so the SQL API that is used should work with both of them. Although I'm not sure how much code they could share, there's probably quite a lot of database-specific optimizations that could be done.
You can get my latest sources from http://dovecot.procontrol.fi/tmp/oracle.tar.gz which should be uncompressed to src/lib-storage/ directory. oracle.sql contains the database schema that I was planning to use. Should be easy to port to other databases. The code itself supports at least saving messages and fetching their flags and some other things.. It's a bit kludgy too.
I'm not sure about the schema either if it's best possible one. Suggestions welcome :) I haven't touched the code for a few months now and I don't really plan to for some time, so go ahead and write the whole thing yourself if you want :) I can help some with the code of course.