1
0
Fork 0

Fixed multiple edge collections in Traverser. All aql-traverser tests seem to work

This commit is contained in:
Michael Hackstein 2016-03-23 16:38:29 +01:00
parent e8fc45a107
commit 7269fd3dc9
1 changed files with 2 additions and 5 deletions

View File

@ -853,7 +853,6 @@ bool DepthFirstTraverser::edgeMatchesConditions(VPackSlice e, size_t depth) {
TRI_ASSERT(exp != nullptr);
if (exp->isEdgeAccess && !exp->matchesCheck(_trx, e)) {
LOG(INFO) << "Edge Match Condition";
++_filteredPaths;
return false;
}
@ -880,7 +879,6 @@ bool DepthFirstTraverser::vertexMatchesConditions(std::string const& v,
vertex = fetchVertexData(v);
}
if (!exp->matchesCheck(_trx, VPackSlice(vertex->data()))) {
LOG(INFO) << "Vertex Match Condition";
++_filteredPaths;
return false;
}
@ -952,7 +950,6 @@ void DepthFirstTraverser::setStartVertex(std::string const& v) {
_vertices.emplace(v, vertex);
}
if (!exp->matchesCheck(_trx, VPackSlice(vertex->data()))) {
LOG(INFO) << "Start Vertex Match Condition";
++_filteredPaths;
_done = true;
return;
@ -1027,8 +1024,6 @@ bool DepthFirstTraverser::EdgeGetter::nextCursor(std::string const& startVertex,
void DepthFirstTraverser::EdgeGetter::nextEdge(
std::string const& startVertex, size_t& eColIdx, VPackValueLength*& last,
std::vector<std::string>& edges) {
auto cursor = _cursors.top();
auto opRes = _results.top();
if (last == nullptr) {
_posInCursor.push(0);
last = &_posInCursor.top();
@ -1036,6 +1031,8 @@ void DepthFirstTraverser::EdgeGetter::nextEdge(
++(*last);
}
while (true) {
auto cursor = _cursors.top();
auto opRes = _results.top();
VPackSlice edge = opRes->slice();
if (!edge.isArray() || edge.length() <= *last) {
if (cursor->hasMore()) {