Switch to unified view

a/src/rcldb/rclquery.cpp b/src/rcldb/rclquery.cpp
...
...
153
    }
153
    }
154
    m_nq->query = xq;
154
    m_nq->query = xq;
155
    string ermsg;
155
    string ermsg;
156
    string d;
156
    string d;
157
    try {
157
    try {
158
    m_nq->enquire = new Xapian::Enquire(m_db->m_ndb->db);
158
    m_nq->enquire = new Xapian::Enquire(m_db->m_ndb->xrdb);
159
    if (m_collapseDuplicates) {
159
    if (m_collapseDuplicates) {
160
        m_nq->enquire->set_collapse_key(Rcl::VALUE_MD5);
160
        m_nq->enquire->set_collapse_key(Rcl::VALUE_MD5);
161
    } else {
161
    } else {
162
        m_nq->enquire->set_collapse_key(Xapian::BAD_VALUENO);
162
        m_nq->enquire->set_collapse_key(Xapian::BAD_VALUENO);
163
    }
163
    }
...
...
256
        Chrono chron;
256
        Chrono chron;
257
    try {
257
    try {
258
        m_nq->mset = m_nq->enquire->get_mset(0, qquantum,0, m_nq->decider);
258
        m_nq->mset = m_nq->enquire->get_mset(0, qquantum,0, m_nq->decider);
259
            ret = m_nq->mset.get_matches_lower_bound();
259
            ret = m_nq->mset.get_matches_lower_bound();
260
    } catch (const Xapian::DatabaseModifiedError &error) {
260
    } catch (const Xapian::DatabaseModifiedError &error) {
261
        m_db->m_ndb->db.reopen();
261
        m_db->m_ndb->xrdb.reopen();
262
        m_nq->mset = m_nq->enquire->get_mset(0, qquantum,0, m_nq->decider);
262
        m_nq->mset = m_nq->enquire->get_mset(0, qquantum,0, m_nq->decider);
263
            ret = m_nq->mset.get_matches_lower_bound();
263
            ret = m_nq->mset.get_matches_lower_bound();
264
    } XCATCHERROR(ermsg);
264
    } XCATCHERROR(ermsg);
265
        LOGDEB(("Query::getResCnt: %d mS\n", chron.millis()));
265
        LOGDEB(("Query::getResCnt: %d mS\n", chron.millis()));
266
    if (!ermsg.empty())
266
    if (!ermsg.empty())
...
...
302
        LOGDEB(("Query::getDoc: fetching %d starting at %d\n",
302
        LOGDEB(("Query::getDoc: fetching %d starting at %d\n",
303
            qquantum, first));
303
            qquantum, first));
304
        try {
304
        try {
305
            m_nq->mset = m_nq->enquire->get_mset(first, qquantum);
305
            m_nq->mset = m_nq->enquire->get_mset(first, qquantum);
306
        } catch (const Xapian::DatabaseModifiedError &error) {
306
        } catch (const Xapian::DatabaseModifiedError &error) {
307
            m_db->m_ndb->db.reopen();
307
            m_db->m_ndb->xrdb.reopen();
308
            m_nq->mset = m_nq->enquire->get_mset(first, qquantum);
308
            m_nq->mset = m_nq->enquire->get_mset(first, qquantum);
309
        } catch (const Xapian::Error & error) {
309
        } catch (const Xapian::Error & error) {
310
          LOGERR(("enquire->get_mset: exception: %s\n", 
310
          LOGERR(("enquire->get_mset: exception: %s\n", 
311
              error.get_msg().c_str()));
311
              error.get_msg().c_str()));
312
                  m_reason = error.get_msg();
312
                  m_reason = error.get_msg();
...
...
341
    LOGDEB(("Fetching for first %d, count %d\n", xapi, qquantum));
341
    LOGDEB(("Fetching for first %d, count %d\n", xapi, qquantum));
342
    try {
342
    try {
343
        m_nq->mset = m_nq->enquire->get_mset(xapi, qquantum,
343
        m_nq->mset = m_nq->enquire->get_mset(xapi, qquantum,
344
                           0, m_nq->decider);
344
                           0, m_nq->decider);
345
    } catch (const Xapian::DatabaseModifiedError &error) {
345
    } catch (const Xapian::DatabaseModifiedError &error) {
346
        m_db->m_ndb->db.reopen();
346
        m_db->m_ndb->xrdb.reopen();
347
        m_nq->mset = m_nq->enquire->get_mset(xapi, qquantum,
347
        m_nq->mset = m_nq->enquire->get_mset(xapi, qquantum,
348
                           0, m_nq->decider);
348
                           0, m_nq->decider);
349
349
350
    } catch (const Xapian::Error & error) {
350
    } catch (const Xapian::Error & error) {
351
      LOGERR(("enquire->get_mset: exception: %s\n", 
351
      LOGERR(("enquire->get_mset: exception: %s\n",