Project Number Date
cypher-for-gremlin 0.9.9 07 Jun 2018, 12:04

Feature Report

Steps Scenarios Features
Feature Passed Failed Skipped Pending Undefined Total Passed Failed Total Duration Status
OptionalMatch 15 0 0 0 0 15 3 0 3 0.101 Passed
Feature OptionalMatch
0.043
Given an empty graph 0.000
And having executed: 0.007
CREATE (a:Player), (b:Team)
CREATE (a)-[:PLAYS_FOR]->(b),
       (a)-[:SUPPORTS]->(b)

12:03:12.920 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: CREATE (a:Player), (b:Team) CREATE (a)-[:PLAYS_FOR]->(b), (a)-[:SUPPORTS]->(b) 12:03:12.924 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.addV('Player').as('a').addV('Team').as('b').addE('PLAYS_FOR').from('a').to('b').addE('SUPPORTS').from('a').to('b').barrier().limit(0)

When executing query: 0.009
MATCH (p:Player)-[:PLAYS_FOR]->(team:Team)
OPTIONAL MATCH (p)-[s:SUPPORTS]->(team)
RETURN count(*) AS matches, s IS NULL AS optMatch

12:03:12.946 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH (p:Player)-[:PLAYS_FOR]->(team:Team) OPTIONAL MATCH (p)-[s:SUPPORTS]->(team) RETURN count(*) AS matches, s IS NULL AS optMatch 12:03:12.952 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().as('p').hasLabel('Player').outE('PLAYS_FOR').inV().as('team').hasLabel('Team').coalesce(__.select('p').outE('SUPPORTS').as('s').inV().as(' GENERATED4').where(__.select(' GENERATED4').where(eq('team'))).select('p', 's', 'team'), __.constant(' cypher.null').as(' GENERATED5').as('s').as(' GENERATED6').select(' GENERATED5', 's', ' GENERATED6')).select('s').as('s').group().by(__.choose(__.is(eq(' cypher.null')), __.constant(true), __.constant(false))).by(__.fold().project('matches', 'optMatch').by(__.unfold().count()).by(__.unfold().choose(__.is(eq(' cypher.null')), __.constant(true), __.constant(false)))).unfold().select(values)

Then the result should be: 0.000
matches optMatch
1 false
And no side effects 0.027

12:03:12.955 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH (n) RETURN id(n) 12:03:12.958 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().project('id(n)').by(__.choose(neq(' cypher.null'), __.id(), __.constant(' cypher.null'))) 12:03:12.958 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH ()-[r]->() RETURN id(r) 12:03:12.962 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().as(' cypher.path.start.GENERATED1').outE().as('r').inV().select('r').project('id(r)').by(__.choose(neq(' cypher.null'), __.id(), __.constant(' cypher.null'))) 12:03:12.963 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label 12:03:12.966 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().label().is(neq('vertex')).project('label').by(__.identity()).dedup() -labels: 0 +labels: 0 +nodes: 0 -nodes: 0 -properties: 0 +properties: 0 -relationships: 0 +relationships: 0

0.027
Given an empty graph 0.000
And having executed: 0.005
CREATE (a:Player), (b:Team)
CREATE (a)-[:PLAYS_FOR]->(b)

12:03:12.983 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: CREATE (a:Player), (b:Team) CREATE (a)-[:PLAYS_FOR]->(b) 12:03:12.986 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.addV('Player').as('a').addV('Team').as('b').addE('PLAYS_FOR').from('a').to('b').barrier().limit(0)

When executing query: 0.005
MATCH (p:Player)-[:PLAYS_FOR]->(team:Team)
OPTIONAL MATCH (p)-[s:SUPPORTS]->(team)
RETURN count(*) AS matches, s IS NULL AS optMatch

12:03:13.006 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH (p:Player)-[:PLAYS_FOR]->(team:Team) OPTIONAL MATCH (p)-[s:SUPPORTS]->(team) RETURN count(*) AS matches, s IS NULL AS optMatch 12:03:13.010 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().as('p').hasLabel('Player').outE('PLAYS_FOR').inV().as('team').hasLabel('Team').coalesce(__.select('p').outE('SUPPORTS').as('s').inV().as(' GENERATED4').where(__.select(' GENERATED4').where(eq('team'))).select('p', 's', 'team'), __.constant(' cypher.null').as(' GENERATED5').as('s').as(' GENERATED6').select(' GENERATED5', 's', ' GENERATED6')).select('s').as('s').group().by(__.choose(__.is(eq(' cypher.null')), __.constant(true), __.constant(false))).by(__.fold().project('matches', 'optMatch').by(__.unfold().count()).by(__.unfold().choose(__.is(eq(' cypher.null')), __.constant(true), __.constant(false)))).unfold().select(values)

Then the result should be: 0.000
matches optMatch
1 true
And no side effects 0.016

12:03:13.012 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH (n) RETURN id(n) 12:03:13.014 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().project('id(n)').by(__.choose(neq(' cypher.null'), __.id(), __.constant(' cypher.null'))) 12:03:13.014 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH ()-[r]->() RETURN id(r) 12:03:13.017 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().as(' cypher.path.start.GENERATED1').outE().as('r').inV().select('r').project('id(r)').by(__.choose(neq(' cypher.null'), __.id(), __.constant(' cypher.null'))) 12:03:13.018 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label 12:03:13.020 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().label().is(neq('vertex')).project('label').by(__.identity()).dedup() -labels: 0 +labels: 0 +nodes: 0 -nodes: 0 -properties: 0 +properties: 0 -relationships: 0 +relationships: 0

0.030
Given an empty graph 0.000
And having executed: 0.007
CREATE (a:Player), (b:Team), (c:Team)
CREATE (a)-[:PLAYS_FOR]->(b),
       (a)-[:SUPPORTS]->(c)

12:03:13.032 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: CREATE (a:Player), (b:Team), (c:Team) CREATE (a)-[:PLAYS_FOR]->(b), (a)-[:SUPPORTS]->(c) 12:03:13.035 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.addV('Player').as('a').addV('Team').as('b').addV('Team').as('c').addE('PLAYS_FOR').from('a').to('b').addE('SUPPORTS').from('a').to('c').barrier().limit(0)

When executing query: 0.005
MATCH (p:Player)-[:PLAYS_FOR]->(team:Team)
OPTIONAL MATCH (p)-[s:SUPPORTS]->(team)
RETURN count(*) AS matches, s IS NULL AS optMatch

12:03:13.056 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH (p:Player)-[:PLAYS_FOR]->(team:Team) OPTIONAL MATCH (p)-[s:SUPPORTS]->(team) RETURN count(*) AS matches, s IS NULL AS optMatch 12:03:13.060 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().as('p').hasLabel('Player').outE('PLAYS_FOR').inV().as('team').hasLabel('Team').coalesce(__.select('p').outE('SUPPORTS').as('s').inV().as(' GENERATED4').where(__.select(' GENERATED4').where(eq('team'))).select('p', 's', 'team'), __.constant(' cypher.null').as(' GENERATED5').as('s').as(' GENERATED6').select(' GENERATED5', 's', ' GENERATED6')).select('s').as('s').group().by(__.choose(__.is(eq(' cypher.null')), __.constant(true), __.constant(false))).by(__.fold().project('matches', 'optMatch').by(__.unfold().count()).by(__.unfold().choose(__.is(eq(' cypher.null')), __.constant(true), __.constant(false)))).unfold().select(values)

Then the result should be: 0.000
matches optMatch
1 true
And no side effects 0.016

12:03:13.062 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH (n) RETURN id(n) 12:03:13.064 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().project('id(n)').by(__.choose(neq(' cypher.null'), __.id(), __.constant(' cypher.null'))) 12:03:13.065 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH ()-[r]->() RETURN id(r) 12:03:13.067 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().as(' cypher.path.start.GENERATED1').outE().as('r').inV().select('r').project('id(r)').by(__.choose(neq(' cypher.null'), __.id(), __.constant(' cypher.null'))) 12:03:13.068 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label 12:03:13.070 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().label().is(neq('vertex')).project('label').by(__.identity()).dedup() -labels: 0 +labels: 0 +nodes: 0 -nodes: 0 -properties: 0 +properties: 0 -relationships: 0 +relationships: 0