/* Force doing a full resync of indexes. */
MAILBOX_SYNC_FLAG_FORCE_RESYNC = 0x100,
/* Add all missing data to cache and fts index ("doveadm index") */
- MAILBOX_SYNC_FLAG_PRECACHE = 0x200
+ MAILBOX_SYNC_FLAG_PRECACHE = 0x200,
+ /* FIXME: kludge until something better comes along:
+ Request full text search index optimization */
+ MAILBOX_SYNC_FLAG_OPTIMIZE = 0x400
};
enum mailbox_sync_type {
struct mailbox *box = ctx->box;
struct fts_mailbox *fbox = FTS_CONTEXT(box);
struct fts_mailbox_list *flist = FTS_LIST_CONTEXT(box->list);
- bool precache, force_resync;
+ bool precache, optimize;
int ret = 0;
precache = (ctx->flags & MAILBOX_SYNC_FLAG_PRECACHE) != 0;
- force_resync = (ctx->flags & MAILBOX_SYNC_FLAG_FORCE_RESYNC) != 0;
+ optimize = (ctx->flags & (MAILBOX_SYNC_FLAG_FORCE_RESYNC |
+ MAILBOX_SYNC_FLAG_OPTIMIZE)) != 0;
if (fbox->module_ctx.super.sync_deinit(ctx, status_r) < 0)
return -1;
ctx = NULL;
flist->backend->syncing = TRUE;
- if (force_resync) {
+ if (optimize) {
if (fts_backend_optimize(flist->backend) < 0) {
mail_storage_set_critical(box->storage,
"FTS optimize for mailbox %s failed",