fts-backend-lucene.c revision c0273594fd114be5262298019b7392bdd6d0e537
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen/* Copyright (c) 2006-2015 Dovecot authors, see the included COPYING file */
473080c7c0d25ddfdf77e7dfa0ba8f73c6c669d5Timo Sirainen#define LUCENE_EXPUNGE_LOG_NAME "dovecot-expunges.log"
49e513d090753ccbf95560b2f3a21f081a5b6c51Timo Sirainen struct fts_expunge_log_append_ctx *expunge_ctx;
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainenstatic int fts_backend_lucene_mkdir(struct lucene_fts_backend *backend)
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen if (mailbox_list_mkdir_root(backend->backend.ns->list,
356303df200c991580bd24041996a070ad08c05eTimo Sirainenfts_lucene_get_mailbox_guid(struct mailbox *box, guid_128_t guid_r)
0f39a57760d93cddbce3ca43096d78e0fe2f42fdTimo Sirainen if (mailbox_get_metadata(box, MAILBOX_METADATA_GUID,
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen i_error("lucene: Couldn't get mailbox %s GUID: %s",
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen box->vname, mailbox_get_last_error(box, NULL));
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainenfts_backend_select(struct lucene_fts_backend *backend, struct mailbox *box)
4a9275dd2adef9107e472d6b84e34b747c4d298fTimo Sirainen unsigned char guid_hex[MAILBOX_GUID_HEX_LENGTH];
137ea7ca34005345aa2304a940149b7f3774d727Timo Sirainen unsigned int i;
c5383a0ed56a188a7d5efaaa4c6f8243af432d65Timo Sirainen backend->selected_box_generation == box->generation_sequence)
c5383a0ed56a188a7d5efaaa4c6f8243af432d65Timo Sirainen if (fts_lucene_get_mailbox_guid(box, guid) < 0)
c5383a0ed56a188a7d5efaaa4c6f8243af432d65Timo Sirainen buffer_create_from_data(&buf, guid_hex, MAILBOX_GUID_HEX_LENGTH);
c5383a0ed56a188a7d5efaaa4c6f8243af432d65Timo Sirainen binary_to_hex_append(&buf, guid, GUID_128_SIZE);
c5383a0ed56a188a7d5efaaa4c6f8243af432d65Timo Sirainen lucene_index_select_mailbox(backend->index, wguid_hex);
c5383a0ed56a188a7d5efaaa4c6f8243af432d65Timo Sirainen lucene_index_unselect_mailbox(backend->index);
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainenstatic struct fts_backend *fts_backend_lucene_alloc(void)
const char *path;
set_checksum)) {
*last_uid_r = 0;
static struct fts_backend_update_context *
unsigned int expunges;
return TRUE;
return FALSE;
return FALSE;
return expunges > 0 &&
ret = 0;
int fd;
return ret;
i_unreached();
return TRUE;
int ret;
T_BEGIN {
} T_END;
return ret;
int ret;
if (ret == 0) {
if (ret >= 0)
return ret;
int ret;
T_BEGIN {
} T_END;
return ret;
const char *guid;
for (j = 0; j < MAILBOX_GUID_HEX_LENGTH; j++)
int ret;
T_BEGIN {
if (ret == 0) {
result);
} T_END;
return ret;