1
0
Fork 0

Fixed RocksDBPrimaryIndex API.

This commit is contained in:
Dan Larkin 2017-03-28 19:17:58 -04:00
parent 00bea4f93c
commit c1c7b27af0
2 changed files with 6 additions and 81 deletions

View File

@ -239,9 +239,9 @@ RocksDBToken RocksDBPrimaryIndex::lookupKey(
return RocksDBToken(RocksDBValue::revisionId(value));
}
int RocksDBPrimaryIndex::insertKey(transaction::Methods* trx,
TRI_voc_rid_t revisionId,
arangodb::velocypack::Slice const& slice) {
int RocksDBPrimaryIndex::insert(transaction::Methods* trx,
TRI_voc_rid_t revisionId,
VPackSlice const& slice, bool) {
// TODO: deal with uniqueness?
auto key =
RocksDBKey::PrimaryIndexValue(_objectId, slice.get("_key").copyString());
@ -261,32 +261,9 @@ int RocksDBPrimaryIndex::insertKey(transaction::Methods* trx,
return TRI_ERROR_NO_ERROR;
}
int RocksDBPrimaryIndex::insertKey(transaction::Methods* trx,
TRI_voc_rid_t revisionId,
arangodb::velocypack::Slice const& slice,
ManagedDocumentResult&) {
// TODO: deal with uniqueness?
auto key =
RocksDBKey::PrimaryIndexValue(_objectId, slice.get("_key").copyString());
auto value = RocksDBValue::PrimaryIndexValue(revisionId);
// aquire rocksdb transaction
RocksDBTransactionState* state = rocksutils::toRocksTransactionState(trx);
rocksdb::Transaction* rtrx = state->rocksTransaction();
auto status = rtrx->Put(key.string(), *value.string());
if (!status.ok()) {
auto converted =
rocksutils::convertStatus(status, rocksutils::StatusHint::index);
return converted.errorNumber();
}
return TRI_ERROR_NO_ERROR;
}
int RocksDBPrimaryIndex::removeKey(transaction::Methods* trx,
TRI_voc_rid_t revisionId,
arangodb::velocypack::Slice const& slice) {
int RocksDBPrimaryIndex::remove(transaction::Methods* trx,
TRI_voc_rid_t revisionId,
VPackSlice const& slice, bool) {
// TODO: deal with matching revisions?
auto key =
RocksDBKey::PrimaryIndexValue(_objectId, slice.get("_key").copyString());
@ -305,48 +282,6 @@ int RocksDBPrimaryIndex::removeKey(transaction::Methods* trx,
return TRI_ERROR_NO_ERROR;
}
int RocksDBPrimaryIndex::removeKey(transaction::Methods* trx,
TRI_voc_rid_t revisionId,
arangodb::velocypack::Slice const& slice,
ManagedDocumentResult&) {
// TODO: deal with matching revisions?
auto key =
RocksDBKey::PrimaryIndexValue(_objectId, slice.get("_key").copyString());
// aquire rocksdb transaction
RocksDBTransactionState* state = rocksutils::toRocksTransactionState(trx);
rocksdb::Transaction* rtrx = state->rocksTransaction();
auto status = rtrx->Delete(key.string());
if (!status.ok()) {
auto converted =
rocksutils::convertStatus(status, rocksutils::StatusHint::index);
return converted.errorNumber();
}
return TRI_ERROR_NO_ERROR;
}
int RocksDBPrimaryIndex::insert(transaction::Methods*, TRI_voc_rid_t,
VPackSlice const&, bool) {
#ifdef ARANGODB_ENABLE_MAINTAINER_MODE
LOG_TOPIC(WARN, arangodb::Logger::FIXME)
<< "insert() called for primary index";
#endif
THROW_ARANGO_EXCEPTION_MESSAGE(TRI_ERROR_INTERNAL,
"insert() called for primary index");
}
int RocksDBPrimaryIndex::remove(transaction::Methods*, TRI_voc_rid_t,
VPackSlice const&, bool) {
#ifdef ARANGODB_ENABLE_MAINTAINER_MODE
LOG_TOPIC(WARN, arangodb::Logger::FIXME)
<< "remove() called for primary index";
#endif
THROW_ARANGO_EXCEPTION_MESSAGE(TRI_ERROR_INTERNAL,
"remove() called for primary index");
}
/// @brief unload the index data from memory
int RocksDBPrimaryIndex::unload() {
// nothing to do

View File

@ -131,16 +131,6 @@ class RocksDBPrimaryIndex final : public RocksDBIndex {
void toVelocyPack(VPackBuilder&, bool) const override;
void toVelocyPackFigures(VPackBuilder&) const override;
int insertKey(transaction::Methods*, TRI_voc_rid_t revisionId,
arangodb::velocypack::Slice const&);
int insertKey(transaction::Methods*, TRI_voc_rid_t revisionId,
arangodb::velocypack::Slice const&, ManagedDocumentResult&);
int removeKey(transaction::Methods*, TRI_voc_rid_t revisionId,
arangodb::velocypack::Slice const&);
int removeKey(transaction::Methods*, TRI_voc_rid_t revisionId,
arangodb::velocypack::Slice const&, ManagedDocumentResult&);
RocksDBToken lookupKey(transaction::Methods* trx, arangodb::StringRef key);
RocksDBToken lookupKey(transaction::Methods* trx,
arangodb::velocypack::Slice key,