1
0
Fork 0

Fixed edge index

This commit is contained in:
Simon Grätzer 2017-03-30 13:22:39 +02:00
parent b8a938180f
commit 3eb1723dec
3 changed files with 17 additions and 8 deletions

View File

@ -600,7 +600,7 @@ void HeartbeatThread::runCoordinator() {
usleep(500000);
remain -= 0.5;
} else {
usleep((unsigned long)(remain * 1000.0 * 1000.0));
usleep((TRI_usleep_t)(remain * 1000.0 * 1000.0));
remain = 0.0;
}
}

View File

@ -79,7 +79,6 @@ RocksDBEdgeIndexIterator::~RocksDBEdgeIndexIterator() {
}
bool RocksDBEdgeIndexIterator::next(TokenCallback const& cb, size_t limit) {
THROW_ARANGO_NOT_YET_IMPLEMENTED();
if (limit == 0 || !_iterator.valid()) {
// No limit no data, or we are actually done. The last call should have
@ -95,6 +94,9 @@ bool RocksDBEdgeIndexIterator::next(TokenCallback const& cb, size_t limit) {
while (limit > 0) {
VPackSlice fromTo = _iterator.value();
if (fromTo.isObject()) {
fromTo = fromTo.get(StaticStrings::IndexEq);
}
TRI_ASSERT(fromTo.isString());
RocksDBKeyBounds prefix = RocksDBKeyBounds::EdgeIndexVertex(
@ -230,8 +232,11 @@ int RocksDBEdgeIndex::insert(transaction::Methods* trx,
rocksdb::Status status =
rtrx->Put(rocksdb::Slice(key.string()), rocksdb::Slice());
Result res = rocksutils::convertStatus(status);
return res.errorNumber();
if (status.ok()) {
return TRI_ERROR_NO_ERROR;
} else {
return rocksutils::convertStatus(status).errorNumber();
}
}
int RocksDBEdgeIndex::remove(transaction::Methods* trx,
@ -247,8 +252,11 @@ int RocksDBEdgeIndex::remove(transaction::Methods* trx,
RocksDBTransactionState* state = rocksutils::toRocksTransactionState(trx);
rocksdb::Transaction* rtrx = state->rocksTransaction();
rocksdb::Status status = rtrx->Delete(rocksdb::Slice(key.string()));
Result res = rocksutils::convertStatus(status, rocksutils::StatusHint::index);
return res.errorNumber();
if (status.ok()) {
return TRI_ERROR_NO_ERROR;
} else {
return rocksutils::convertStatus(status).errorNumber();
}
}
void RocksDBEdgeIndex::batchInsert(

View File

@ -357,13 +357,14 @@ std::shared_ptr<Index> RocksDBIndexFactory::prepareIndexFromSlice(
new arangodb::RocksDBEdgeIndex(iid, col, StaticStrings::FromString));
break;
}
// case arangodb::Index::TRI_IDX_TYPE_HASH_INDEX: {
case arangodb::Index::TRI_IDX_TYPE_HASH_INDEX: {
LOG_TOPIC(WARN, Logger::FIXME) << "Hash Index not implemented";
// // TODO: fix this wrong index type. only used temporarily because we
// don't have other indexes
// newIdx.reset(new arangodb::RocksDBEdgeIndex(db, iid, col,
// StaticStrings::FromString));
// break;
//}
}
case arangodb::Index::TRI_IDX_TYPE_UNKNOWN:
default: {