arangosh> db._explain("FOR v,e,p IN 1..3 OUTBOUND 'circles/' GRAPH 'traversalGraph' LET localScopeVar = RAND() > 0.5 FILTER p.edges[0].theTruth != localScopeVar return v._key", {}, {colors:false});
Query string:
FOR v,e,p IN 1..3 OUTBOUND 'circles/' GRAPH 'traversalGraph' LET localScopeVar = RAND() > 0.5 FILTER
p.edges[0].theTruth != localScopeVar return v._key
Execution plan:
Id NodeType Est. Comment
1 SingletonNode 1 * ROOT
2 TraversalNode 1000 - FOR v , e , p IN 1..3 OUTBOUND 'circles/' GRAPH 'traversalGraph'
3 CalculationNode 1000 - LET localScopeVar = RAND() > 0.5
4 CalculationNode 1000 - LET #4 = p.`edges`[0].`theTruth` != localScopeVar
5 FilterNode 1000 - FILTER #4
6 CalculationNode 1000 - LET #6 = v.`_key`
7 ReturnNode 1000 - RETURN #6
Indexes used:
none
Traversals on graphs:
Id traversal depth Vertex collections Edge collections Filter conditions
2 1..3 circles edges
Optimization rules applied:
Id RuleName
1 move-calculations-up
2 move-calculations-down
arangosh> db._explain("FOR v,e,p IN 1..3 OUTBOUND 'circles/A' GRAPH 'traversalGraph' FILTER p.edges[0].label == 'right_foo' return v._key", {}, {colors:false});
Query string:
FOR v,e,p IN 1..3 OUTBOUND 'circles/A' GRAPH 'traversalGraph' FILTER p.edges[0].label == 'right_foo'
return v._key
Execution plan:
Id NodeType Est. Comment
1 SingletonNode 1 * ROOT
2 TraversalNode 1000 - FOR v , e , p IN 1..3 OUTBOUND 'circles/A' GRAPH 'traversalGraph'
3 CalculationNode 1000 - LET #3 = p.`edges`[0].`label` == "right_foo"
4 FilterNode 1000 - FILTER #3
5 CalculationNode 1000 - LET #5 = v.`_key`
6 ReturnNode 1000 - RETURN #5
Indexes used:
none
Traversals on graphs:
Id traversal depth Vertex collections Edge collections Filter conditions
2 1..3 circles edges p.`edges`[0].`label` == "right_foo"
Optimization rules applied:
Id RuleName
1 move-calculations-up
2 move-filters-up
3 move-calculations-up-2
4 move-filters-up-2
5 merge-traversal-filter