Gregory Hartman
2003-Jul-18 15:20 UTC
[Dovecot] Status of database integration / Willing to help
I a PhD student here at Carnegie Mellon. I have ten years of experience working in C in industry. I am working on a research project here at Carnegie Mellon that needs to integrate a database with mail clients. We are planning to use the IMAP protocol to communicate with the mail client. After I spent some time looking at the code of various IMAP server implementations, I got very interested in Dovecot. 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? -- Gregory Hartman <gghartma at cs.cmu.edu>
Timo Sirainen
2003-Jul-18 15:53 UTC
[Dovecot] Status of database integration / Willing to help
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.