Errors when opening additional indexes for a query are now fatal. They could easily go unnoticed before

This commit is contained in:
Jean-Francois Dockes 2010-07-04 19:28:15 +02:00
parent eed70e7003
commit 387b66e165

View File

@ -582,19 +582,13 @@ bool Db::open(OpenMode mode)
m_ndb->xrdb = Xapian::Database(dir); m_ndb->xrdb = Xapian::Database(dir);
for (list<string>::iterator it = m_extraDbs.begin(); for (list<string>::iterator it = m_extraDbs.begin();
it != m_extraDbs.end(); it++) { it != m_extraDbs.end(); it++) {
string aerr;
LOGDEB(("Db::Open: adding query db [%s]\n", it->c_str())); LOGDEB(("Db::Open: adding query db [%s]\n", it->c_str()));
aerr.erase(); // Used to be non-fatal (1.13 and older) but I can't see why
try { m_ndb->xrdb.add_database(Xapian::Database(*it));
// Make this non-fatal
m_ndb->xrdb.add_database(Xapian::Database(*it));
} XCATCHERROR(aerr);
if (!aerr.empty())
LOGERR(("Db::Open: error while trying to add database "
"from [%s]: %s\n", it->c_str(), aerr.c_str()));
} }
break; break;
} }
// Check index format version. Must not try to check a just created or // Check index format version. Must not try to check a just created or
// truncated db // truncated db
if (mode != DbTrunc && m_ndb->xdb().get_doccount() > 0) { if (mode != DbTrunc && m_ndb->xdb().get_doccount() > 0) {
@ -612,6 +606,8 @@ bool Db::open(OpenMode mode)
m_basedir = dir; m_basedir = dir;
return true; return true;
} XCATCHERROR(ermsg); } XCATCHERROR(ermsg);
m_reason = ermsg;
LOGERR(("Db::open: exception while opening [%s]: %s\n", LOGERR(("Db::open: exception while opening [%s]: %s\n",
dir.c_str(), ermsg.c_str())); dir.c_str(), ermsg.c_str()));
return false; return false;