|
a/src/rcldb/rcldb.cpp |
|
b/src/rcldb/rcldb.cpp |
|
... |
|
... |
779 |
cstr_RCL_IDX_VERSION);
|
779 |
cstr_RCL_IDX_VERSION);
|
780 |
m_ndb->m_iswritable = true;
|
780 |
m_ndb->m_iswritable = true;
|
781 |
#ifdef IDX_THREADS
|
781 |
#ifdef IDX_THREADS
|
782 |
m_ndb->maybeStartThreads();
|
782 |
m_ndb->maybeStartThreads();
|
783 |
#endif
|
783 |
#endif
|
784 |
// We open a readonly object in all cases (possibly in
|
784 |
// We used to open a readonly object in addition to
|
785 |
// addition to the r/w one) because some operations
|
785 |
// the r/w one because some operations were faster
|
786 |
// are faster when performed through a Database: no
|
786 |
// when performed through a Database: no forced
|
787 |
// forced flushes on allterms_begin(), ie, used in
|
787 |
// flushes on allterms_begin(), used in
|
788 |
// subDocs()
|
788 |
// subDocs(). This issue has been gone for a long time
|
|
|
789 |
// (now: Xapian 1.2) and the separate objects seem to
|
|
|
790 |
// trigger other Xapian issues, so the query db is now
|
|
|
791 |
// a clone of the update one.
|
789 |
m_ndb->xrdb = Xapian::Database(dir);
|
792 |
// m_ndb->xrdb = Xapian::Database(dir);
|
|
|
793 |
m_ndb->xrdb = m_ndb->xwdb;
|
790 |
LOGDEB(("Db::open: lastdocid: %d\n",
|
794 |
LOGDEB(("Db::open: lastdocid: %d\n",
|
791 |
m_ndb->xwdb.get_lastdocid()));
|
795 |
m_ndb->xwdb.get_lastdocid()));
|
792 |
LOGDEB2(("Db::open: resetting updated\n"));
|
796 |
LOGDEB2(("Db::open: resetting updated\n"));
|
793 |
updated.resize(m_ndb->xwdb.get_lastdocid() + 1);
|
797 |
updated.resize(m_ndb->xwdb.get_lastdocid() + 1);
|
794 |
for (unsigned int i = 0; i < updated.size(); i++)
|
798 |
for (unsigned int i = 0; i < updated.size(); i++)
|