|
a/src/rcldb/rcldb.cpp |
|
b/src/rcldb/rcldb.cpp |
1 |
#ifndef lint
|
1 |
#ifndef lint
|
2 |
static char rcsid[] = "@(#$Id: rcldb.cpp,v 1.41 2005-11-25 09:12:25 dockes Exp $ (C) 2004 J.F.Dockes";
|
2 |
static char rcsid[] = "@(#$Id: rcldb.cpp,v 1.42 2005-11-30 09:46:25 dockes Exp $ (C) 2004 J.F.Dockes";
|
3 |
#endif
|
3 |
#endif
|
4 |
#include <stdio.h>
|
4 |
#include <stdio.h>
|
5 |
#include <sys/stat.h>
|
5 |
#include <sys/stat.h>
|
6 |
|
6 |
|
7 |
#include <iostream>
|
7 |
#include <iostream>
|
|
... |
|
... |
99 |
}
|
99 |
}
|
100 |
string ermsg;
|
100 |
string ermsg;
|
101 |
try {
|
101 |
try {
|
102 |
switch (mode) {
|
102 |
switch (mode) {
|
103 |
case DbUpd:
|
103 |
case DbUpd:
|
104 |
ndb->wdb =
|
|
|
105 |
Xapian::WritableDatabase(dir, Xapian::DB_CREATE_OR_OPEN);
|
|
|
106 |
LOGDEB(("Rcl::Db::open: lastdocid: %d\n",
|
|
|
107 |
ndb->wdb.get_lastdocid()));
|
|
|
108 |
ndb->updated.resize(ndb->wdb.get_lastdocid() + 1);
|
|
|
109 |
for (unsigned int i = 0; i < ndb->updated.size(); i++)
|
|
|
110 |
ndb->updated[i] = false;
|
|
|
111 |
ndb->iswritable = true;
|
|
|
112 |
break;
|
|
|
113 |
case DbTrunc:
|
104 |
case DbTrunc:
|
|
|
105 |
{
|
|
|
106 |
int action = (mode == DbUpd) ? Xapian::DB_CREATE_OR_OPEN :
|
|
|
107 |
Xapian::DB_CREATE_OR_OVERWRITE;
|
|
|
108 |
ndb->wdb = Xapian::WritableDatabase(dir, action);
|
|
|
109 |
LOGDEB(("Rcl::Db::open: lastdocid: %d\n",
|
|
|
110 |
ndb->wdb.get_lastdocid()));
|
|
|
111 |
ndb->updated.resize(ndb->wdb.get_lastdocid() + 1);
|
|
|
112 |
for (unsigned int i = 0; i < ndb->updated.size(); i++)
|
|
|
113 |
ndb->updated[i] = false;
|
|
|
114 |
ndb->iswritable = true;
|
|
|
115 |
}
|
114 |
break;
|
116 |
break;
|
115 |
case DbRO:
|
117 |
case DbRO:
|
116 |
default:
|
118 |
default:
|
117 |
ndb->iswritable = false;
|
119 |
ndb->iswritable = false;
|
118 |
ndb->db = Xapian::Database(dir);
|
120 |
ndb->db = Xapian::Database(dir);
|