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