I wasted some time yesterday and today implementing a SQL storage
plugin. It seems to be working, but:

 - Saving new messages is done in a regular INSERT statement, which is
bad. PostgreSQL has at least this COPY TO command which could be used
instead.
 - It breaks in stress testing
 - It's not that well optimized. Especially it could support caching
some commonly requested fields (same as dovecot.index.cache file).
 - Currently works only with PostgreSQL.

Nothing is committed to CVS yet. I'm not sure if I should even do that.
I'm not sure if those lib-sql API changes were that great. Maybe there's
a better way..

If you're interested in trying it, you need the latest CVS HEAD sources
and these patches:

http://dovecot.org/patches/sql-storage-changes.diff
http://dovecot.org/patches/sql-storage-plugin.diff

The SQL schema is in src/plugins/mail-sql/schema.sql file. It creates a
"tss" named user by default, so you might want to modify that. :)

Then set:

mail_location = sql:pgsql:host=localhost dbname=mails user=mailuser
password=foo
mail_plugins = mail_sql

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to