Does the attached patch help? Although it makes performance slightly
worse.. Probably not noticeably. If it works, I'll just commit it to the
next release.

# HG changeset patch
# User Timo Sirainen <t...@iki.fi>
# Date 1249672324 14400
# Branch HEAD
# Node ID 96b764649cbbdcf42d90486885e94ea81c86cc94
# Parent  682e09eb1e8f24be5ae8df09113e99039dd13b16
fts: Fixed crashing with Squat.
A better solution would be for Squat to use existing mailboxes' Squat
indexes, but for now this isn't done.

diff -r 682e09eb1e8f -r 96b764649cbb src/plugins/fts-solr/fts-backend-solr.c
--- a/src/plugins/fts-solr/fts-backend-solr.c	Fri Aug 07 14:57:10 2009 -0400
+++ b/src/plugins/fts-solr/fts-backend-solr.c	Fri Aug 07 15:12:04 2009 -0400
@@ -796,7 +796,7 @@
 
 struct fts_backend fts_backend_solr = {
 	MEMBER(name) "solr",
-	MEMBER(flags) 0,
+	MEMBER(flags) FTS_BACKEND_FLAG_VIRTUAL_LOOKUPS,
 
 	{
 		fts_backend_solr_init,
diff -r 682e09eb1e8f -r 96b764649cbb src/plugins/fts/fts-api-private.h
--- a/src/plugins/fts/fts-api-private.h	Fri Aug 07 14:57:10 2009 -0400
+++ b/src/plugins/fts/fts-api-private.h	Fri Aug 07 15:12:04 2009 -0400
@@ -43,7 +43,9 @@
 	/* If set, the backend is used for TEXT and BODY search
 	   optimizations. Otherwise only TEXT_FAST and BODY_FAST are
 	   optimized. */
-	FTS_BACKEND_FLAG_SUBSTRING_LOOKUPS	= 0x01
+	FTS_BACKEND_FLAG_SUBSTRING_LOOKUPS	= 0x01,
+	/* Backend supports virtual mailbox lookups. */
+	FTS_BACKEND_FLAG_VIRTUAL_LOOKUPS	= 0x02
 };
 
 struct fts_backend {
diff -r 682e09eb1e8f -r 96b764649cbb src/plugins/fts/fts-storage.c
--- a/src/plugins/fts/fts-storage.c	Fri Aug 07 14:57:10 2009 -0400
+++ b/src/plugins/fts/fts-storage.c	Fri Aug 07 15:12:04 2009 -0400
@@ -441,7 +441,8 @@
 		return 0;
 	}
 
-	if (fctx->fbox->virtual)
+	if (fctx->fbox->virtual &&
+	    (fctx->build_backend->flags & FTS_BACKEND_FLAG_VIRTUAL_LOOKUPS) != 0)
 		ret = fts_build_init_virtual(fctx);
 	else
 		ret = fts_build_init_trans(fctx, fctx->t);

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

Reply via email to