Project Number Date
cypher-for-gremlin 1.0.0 02 Mar 2019, 16:49

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.048 Passed
Feature OptionalMatch
0.017
Given an empty graph 0.000

16:49:19.129 [Test worker] DEBUG o.a.t.g.driver.Client - g.V().drop()}} to - Connection{host=Host{address=localhost/127.0.0.1:37305, hostUri=ws://localhost:37305/gremlin}}

And having executed: 0.003
CREATE (a:Player), (b:Team)
CREATE (a)-[:PLAYS_FOR]->(b),
       (a)-[:SUPPORTS]->(b)

16:49:19.130 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (a:Player), (b:Team) CREATE (a)-[:PLAYS_FOR]->(b), (a)-[:SUPPORTS]->(b)}} to - Connection{host=Host{address=localhost/127.0.0.1:37305, hostUri=ws://localhost:37305/gremlin}} 16:49:19.130 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (a:Player), (b:Team) CREATE (a)-[:PLAYS_FOR]->(b), (a)-[:SUPPORTS]->(b) 16:49:19.131 [gremlin-server-worker-1] INFO o.o.g.s.o.c.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.003
MATCH (p:Player)-[:PLAYS_FOR]->(team:Team)
OPTIONAL MATCH (p)-[s:SUPPORTS]->(team)
RETURN count(*) AS matches, s IS NULL AS optMatch

16:49:19.143 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (p:Player)-[:PLAYS_FOR]->(team:Team) OPTIONAL MATCH (p)-[s:SUPPORTS]->(team) RETURN count(*) AS matches, s IS NULL AS optMatch}} to - Connection{host=Host{address=localhost/127.0.0.1:37305, hostUri=ws://localhost:37305/gremlin}} 16:49:19.143 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (p:Player)-[:PLAYS_FOR]->(team:Team) OPTIONAL MATCH (p)-[s:SUPPORTS]->(team) RETURN count(*) AS matches, s IS NULL AS optMatch 16:49:19.146 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().as('p').hasLabel('Player').outE('PLAYS_FOR').inV().as('team').hasLabel('Team').choose(__.select('p').outE('SUPPORTS').as('s').inV().as(' GENERATED6').where(__.select(' GENERATED6').where(eq('team'))), __.select('p').outE('SUPPORTS').as('s').inV().as(' GENERATED6').where(__.select(' GENERATED6').where(eq('team'))), __.constant(' cypher.null').as('s')).select('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.009

16:49:19.147 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n) RETURN id(n)}} to - Connection{host=Host{address=localhost/127.0.0.1:37305, hostUri=ws://localhost:37305/gremlin}} 16:49:19.147 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) RETURN id(n) 16:49:19.148 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().project('id(n)').by(__.id()) 16:49:19.148 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH ()-[r]->() RETURN id(r)}} to - Connection{host=Host{address=localhost/127.0.0.1:37305, hostUri=ws://localhost:37305/gremlin}} 16:49:19.148 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH ()-[r]->() RETURN id(r) 16:49:19.150 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.E().project('id(r)').by(__.id()) 16:49:19.150 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label}} to - Connection{host=Host{address=localhost/127.0.0.1:37305, hostUri=ws://localhost:37305/gremlin}} 16:49:19.150 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label 16:49:19.151 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().map(__.label().is(neq('vertex')).fold()).unfold().project('label').by(__.identity()).dedup() 16:49:19.152 [Test worker] DEBUG o.a.t.g.driver.Client - g.V().as('V').properties().project('nodeId', 'key', 'value').by(__.select('V').id()).by(__.key()).by(__.value())}} to - Connection{host=Host{address=localhost/127.0.0.1:37305, hostUri=ws://localhost:37305/gremlin}} 16:49:19.154 [Test worker] DEBUG o.a.t.g.driver.Client - g.V().outE().as('E').properties().project('relId', 'key', 'value').by(__.select('E').id()).by(__.key()).by(__.value())}} to - Connection{host=Host{address=localhost/127.0.0.1:37305, hostUri=ws://localhost:37305/gremlin}} -labels: 0 +labels: 0 +nodes: 0 -nodes: 0 -properties: 0 +properties: 0 -relationships: 0 +relationships: 0

0.015
Given an empty graph 0.000

16:49:19.156 [Test worker] DEBUG o.a.t.g.driver.Client - g.V().drop()}} to - Connection{host=Host{address=localhost/127.0.0.1:37305, hostUri=ws://localhost:37305/gremlin}}

And having executed: 0.002
CREATE (a:Player), (b:Team)
CREATE (a)-[:PLAYS_FOR]->(b)

16:49:19.157 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (a:Player), (b:Team) CREATE (a)-[:PLAYS_FOR]->(b)}} to - Connection{host=Host{address=localhost/127.0.0.1:37305, hostUri=ws://localhost:37305/gremlin}} 16:49:19.157 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (a:Player), (b:Team) CREATE (a)-[:PLAYS_FOR]->(b) 16:49:19.158 [gremlin-server-worker-1] INFO o.o.g.s.o.c.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.003
MATCH (p:Player)-[:PLAYS_FOR]->(team:Team)
OPTIONAL MATCH (p)-[s:SUPPORTS]->(team)
RETURN count(*) AS matches, s IS NULL AS optMatch

16:49:19.169 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (p:Player)-[:PLAYS_FOR]->(team:Team) OPTIONAL MATCH (p)-[s:SUPPORTS]->(team) RETURN count(*) AS matches, s IS NULL AS optMatch}} to - Connection{host=Host{address=localhost/127.0.0.1:37305, hostUri=ws://localhost:37305/gremlin}} 16:49:19.169 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (p:Player)-[:PLAYS_FOR]->(team:Team) OPTIONAL MATCH (p)-[s:SUPPORTS]->(team) RETURN count(*) AS matches, s IS NULL AS optMatch 16:49:19.171 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().as('p').hasLabel('Player').outE('PLAYS_FOR').inV().as('team').hasLabel('Team').choose(__.select('p').outE('SUPPORTS').as('s').inV().as(' GENERATED6').where(__.select(' GENERATED6').where(eq('team'))), __.select('p').outE('SUPPORTS').as('s').inV().as(' GENERATED6').where(__.select(' GENERATED6').where(eq('team'))), __.constant(' cypher.null').as('s')).select('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.010

16:49:19.172 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n) RETURN id(n)}} to - Connection{host=Host{address=localhost/127.0.0.1:37305, hostUri=ws://localhost:37305/gremlin}} 16:49:19.172 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) RETURN id(n) 16:49:19.173 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().project('id(n)').by(__.id()) 16:49:19.173 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH ()-[r]->() RETURN id(r)}} to - Connection{host=Host{address=localhost/127.0.0.1:37305, hostUri=ws://localhost:37305/gremlin}} 16:49:19.173 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH ()-[r]->() RETURN id(r) 16:49:19.174 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.E().project('id(r)').by(__.id()) 16:49:19.175 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label}} to - Connection{host=Host{address=localhost/127.0.0.1:37305, hostUri=ws://localhost:37305/gremlin}} 16:49:19.175 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label 16:49:19.176 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().map(__.label().is(neq('vertex')).fold()).unfold().project('label').by(__.identity()).dedup() 16:49:19.176 [Test worker] DEBUG o.a.t.g.driver.Client - g.V().as('V').properties().project('nodeId', 'key', 'value').by(__.select('V').id()).by(__.key()).by(__.value())}} to - Connection{host=Host{address=localhost/127.0.0.1:37305, hostUri=ws://localhost:37305/gremlin}} 16:49:19.179 [Test worker] DEBUG o.a.t.g.driver.Client - g.V().outE().as('E').properties().project('relId', 'key', 'value').by(__.select('E').id()).by(__.key()).by(__.value())}} to - Connection{host=Host{address=localhost/127.0.0.1:37305, hostUri=ws://localhost:37305/gremlin}} -labels: 0 +labels: 0 +nodes: 0 -nodes: 0 -properties: 0 +properties: 0 -relationships: 0 +relationships: 0

0.015
Given an empty graph 0.000

16:49:19.182 [Test worker] DEBUG o.a.t.g.driver.Client - g.V().drop()}} to - Connection{host=Host{address=localhost/127.0.0.1:37305, hostUri=ws://localhost:37305/gremlin}}

And having executed: 0.003
CREATE (a:Player), (b:Team), (c:Team)
CREATE (a)-[:PLAYS_FOR]->(b),
       (a)-[:SUPPORTS]->(c)

16:49:19.183 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (a:Player), (b:Team), (c:Team) CREATE (a)-[:PLAYS_FOR]->(b), (a)-[:SUPPORTS]->(c)}} to - Connection{host=Host{address=localhost/127.0.0.1:37305, hostUri=ws://localhost:37305/gremlin}} 16:49:19.183 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (a:Player), (b:Team), (c:Team) CREATE (a)-[:PLAYS_FOR]->(b), (a)-[:SUPPORTS]->(c) 16:49:19.184 [gremlin-server-worker-1] INFO o.o.g.s.o.c.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.003
MATCH (p:Player)-[:PLAYS_FOR]->(team:Team)
OPTIONAL MATCH (p)-[s:SUPPORTS]->(team)
RETURN count(*) AS matches, s IS NULL AS optMatch

16:49:19.196 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (p:Player)-[:PLAYS_FOR]->(team:Team) OPTIONAL MATCH (p)-[s:SUPPORTS]->(team) RETURN count(*) AS matches, s IS NULL AS optMatch}} to - Connection{host=Host{address=localhost/127.0.0.1:37305, hostUri=ws://localhost:37305/gremlin}} 16:49:19.196 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (p:Player)-[:PLAYS_FOR]->(team:Team) OPTIONAL MATCH (p)-[s:SUPPORTS]->(team) RETURN count(*) AS matches, s IS NULL AS optMatch 16:49:19.198 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().as('p').hasLabel('Player').outE('PLAYS_FOR').inV().as('team').hasLabel('Team').choose(__.select('p').outE('SUPPORTS').as('s').inV().as(' GENERATED6').where(__.select(' GENERATED6').where(eq('team'))), __.select('p').outE('SUPPORTS').as('s').inV().as(' GENERATED6').where(__.select(' GENERATED6').where(eq('team'))), __.constant(' cypher.null').as('s')).select('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.009

16:49:19.199 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n) RETURN id(n)}} to - Connection{host=Host{address=localhost/127.0.0.1:37305, hostUri=ws://localhost:37305/gremlin}} 16:49:19.199 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) RETURN id(n) 16:49:19.200 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().project('id(n)').by(__.id()) 16:49:19.200 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH ()-[r]->() RETURN id(r)}} to - Connection{host=Host{address=localhost/127.0.0.1:37305, hostUri=ws://localhost:37305/gremlin}} 16:49:19.200 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH ()-[r]->() RETURN id(r) 16:49:19.202 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.E().project('id(r)').by(__.id()) 16:49:19.202 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label}} to - Connection{host=Host{address=localhost/127.0.0.1:37305, hostUri=ws://localhost:37305/gremlin}} 16:49:19.202 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label 16:49:19.203 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().map(__.label().is(neq('vertex')).fold()).unfold().project('label').by(__.identity()).dedup() 16:49:19.203 [Test worker] DEBUG o.a.t.g.driver.Client - g.V().as('V').properties().project('nodeId', 'key', 'value').by(__.select('V').id()).by(__.key()).by(__.value())}} to - Connection{host=Host{address=localhost/127.0.0.1:37305, hostUri=ws://localhost:37305/gremlin}} 16:49:19.205 [Test worker] DEBUG o.a.t.g.driver.Client - g.V().outE().as('E').properties().project('relId', 'key', 'value').by(__.select('E').id()).by(__.key()).by(__.value())}} to - Connection{host=Host{address=localhost/127.0.0.1:37305, hostUri=ws://localhost:37305/gremlin}} -labels: 0 +labels: 0 +nodes: 0 -nodes: 0 -properties: 0 +properties: 0 -relationships: 0 +relationships: 0