1
0
Fork 0

fix tests

This commit is contained in:
jsteemann 2018-03-05 17:30:46 +01:00
parent 5a67a048c5
commit 37e2ef461a
4 changed files with 50 additions and 10 deletions

View File

@ -1078,7 +1078,11 @@ arangodb::Result LogicalCollection::updateProperties(VPackSlice const& slice,
StorageEngine* engine = EngineSelectorFeature::ENGINE;
engine->changeCollection(vocbase(), id(), this, doSync);
DatabaseFeature::DATABASE->versionTracker()->track("change collection");
if (DatabaseFeature::DATABASE != nullptr &&
DatabaseFeature::DATABASE->versionTracker() != nullptr) {
DatabaseFeature::DATABASE->versionTracker()->track("change collection");
}
return {};
}
@ -1126,7 +1130,10 @@ std::shared_ptr<Index> LogicalCollection::createIndex(transaction::Methods* trx,
bool& created) {
auto idx = _physical->createIndex(trx, info, created);
if (idx) {
DatabaseFeature::DATABASE->versionTracker()->track("create index");
if (DatabaseFeature::DATABASE != nullptr &&
DatabaseFeature::DATABASE->versionTracker() != nullptr) {
DatabaseFeature::DATABASE->versionTracker()->track("create index");
}
}
return idx;
}
@ -1140,7 +1147,10 @@ bool LogicalCollection::dropIndex(TRI_idx_iid_t iid) {
arangodb::aql::QueryCache::instance()->invalidate(vocbase(), name());
bool result = _physical->dropIndex(iid);
if (result) {
DatabaseFeature::DATABASE->versionTracker()->track("drop index");
if (DatabaseFeature::DATABASE != nullptr &&
DatabaseFeature::DATABASE->versionTracker() != nullptr) {
DatabaseFeature::DATABASE->versionTracker()->track("drop index");
}
}
return result;
}
@ -1440,4 +1450,4 @@ std::string LogicalCollection::generateGloballyUniqueId() const {
// -----------------------------------------------------------------------------
// --SECTION-- END-OF-FILE
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------

View File

@ -1148,7 +1148,10 @@ arangodb::LogicalCollection* TRI_vocbase_t::createCollection(
// API compatibility, we always return the collection, even if creation
// failed.
DatabaseFeature::DATABASE->versionTracker()->track("create collection");
if (DatabaseFeature::DATABASE != nullptr &&
DatabaseFeature::DATABASE->versionTracker() != nullptr) {
DatabaseFeature::DATABASE->versionTracker()->track("create collection");
}
return collection;
}
@ -1249,7 +1252,10 @@ int TRI_vocbase_t::dropCollection(arangodb::LogicalCollection* collection,
engine->signalCleanup(collection->vocbase());
}
DatabaseFeature::DATABASE->versionTracker()->track("drop collection");
if (DatabaseFeature::DATABASE != nullptr &&
DatabaseFeature::DATABASE->versionTracker() != nullptr) {
DatabaseFeature::DATABASE->versionTracker()->track("drop collection");
}
}
if (state == DROP_PERFORM || state == DROP_EXIT) {
@ -1418,7 +1424,10 @@ int TRI_vocbase_t::renameCollection(arangodb::LogicalCollection* collection,
locker.unlock();
writeLocker.unlock();
DatabaseFeature::DATABASE->versionTracker()->track("rename collection");
if (DatabaseFeature::DATABASE != nullptr &&
DatabaseFeature::DATABASE->versionTracker() != nullptr) {
DatabaseFeature::DATABASE->versionTracker()->track("rename collection");
}
// invalidate all entries for the two collections
arangodb::aql::PlanCache::instance()->invalidate(this);
@ -1602,7 +1611,10 @@ std::shared_ptr<arangodb::LogicalView> TRI_vocbase_t::createView(
// API compatibility, we always return the view, even if creation failed.
if (view) {
DatabaseFeature::DATABASE->versionTracker()->track("create view");
if (DatabaseFeature::DATABASE != nullptr &&
DatabaseFeature::DATABASE->versionTracker() != nullptr) {
DatabaseFeature::DATABASE->versionTracker()->track("create view");
}
}
return view;
@ -1672,7 +1684,10 @@ int TRI_vocbase_t::dropView(std::shared_ptr<arangodb::LogicalView> view) {
writeLocker.unlock();
events::DropView(view->name(), TRI_ERROR_NO_ERROR);
DatabaseFeature::DATABASE->versionTracker()->track("drop view");
if (DatabaseFeature::DATABASE != nullptr &&
DatabaseFeature::DATABASE->versionTracker() != nullptr) {
DatabaseFeature::DATABASE->versionTracker()->track("drop view");
}
return TRI_ERROR_NO_ERROR;
}
@ -2006,4 +2021,4 @@ TRI_voc_rid_t TRI_StringToRid(char const* p, size_t len, bool& isOld,
// -----------------------------------------------------------------------------
// --SECTION-- END-OF-FILE
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------

View File

@ -39,6 +39,15 @@ ExecutionNodeMock::ExecutionNodeMock(size_t id /*= 0*/)
arangodb::aql::ExecutionNode::NodeType ExecutionNodeMock::getType() const {
return arangodb::aql::ExecutionNode::NodeType::SINGLETON;
}
std::unique_ptr<arangodb::aql::ExecutionBlock> ExecutionNodeMock::createBlock(
arangodb::aql::ExecutionEngine& engine,
std::unordered_map<ExecutionNode*, arangodb::aql::ExecutionBlock*> const& cache,
std::unordered_set<std::string> const& includedShards
) const {
TRI_ASSERT(false);
THROW_ARANGO_EXCEPTION_MESSAGE(TRI_ERROR_INTERNAL, "cannot create a block of ExecutionNodeMock");
}
arangodb::aql::ExecutionNode* ExecutionNodeMock::clone(
arangodb::aql::ExecutionPlan* plan,

View File

@ -52,6 +52,12 @@ class ExecutionNodeMock final : public arangodb::aql::ExecutionNode {
/// @brief return the type of the node
virtual NodeType getType() const override;
virtual std::unique_ptr<arangodb::aql::ExecutionBlock> createBlock(
arangodb::aql::ExecutionEngine& engine,
std::unordered_map<ExecutionNode*, arangodb::aql::ExecutionBlock*> const& cache,
std::unordered_set<std::string> const& includedShards
) const;
/// @brief clone execution Node recursively, this makes the class abstract
virtual ExecutionNode* clone(