Project Number Date
cypher-for-gremlin 1.0.4 05 Nov 2019, 16:13

Feature Report

Steps Scenarios Features
Feature Passed Failed Skipped Pending Undefined Total Passed Failed Total Duration Status
OptionalMatchAcceptance 126 2 0 0 0 128 23 2 25 0.000 Failed
Feature OptionalMatchAcceptance
0.000
Given an empty graph 0.000

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

And having executed: 0.000
CREATE (s:Single), (a:A {prop: 42}),
       (b:B {prop: 46}), (c:C)
CREATE (s)-[:REL]->(a),
       (s)-[:REL]->(b),
       (a)-[:REL]->(c),
       (b)-[:LOOP]->(b)

16:11:26.951 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:26.952 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b) 16:11:26.974 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.addV('Single').as('s').addV('A').as('a').property(single, 'prop', 42).addV('B').as('b').property(single, 'prop', 46).addV('C').as('c').addE('REL').from('s').to('a').addE('REL').from('s').to('b').addE('REL').from('a').to('c').addE('LOOP').from('b').to('b').barrier().limit(0)

0.000
When executing query: 0.000
MATCH (n:Single)
OPTIONAL MATCH (n)-[r]-(m:NonExistent)
RETURN r

16:11:27.074 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n:Single) OPTIONAL MATCH (n)-[r]-(m:NonExistent) RETURN r}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.074 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n:Single) OPTIONAL MATCH (n)-[r]-(m:NonExistent) RETURN r 16:11:27.095 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().as('n').hasLabel('Single').choose(__.select('n').bothE().dedup().by(__.path()).as('r').otherV().hasLabel('NonExistent'), __.select('n').bothE().dedup().by(__.path()).as('r').otherV().hasLabel('NonExistent'), __.constant(' cypher.null').as('r')).select('r').project('r').by(__.choose(neq(' cypher.null'), __.project(' cypher.element', ' cypher.inv', ' cypher.outv').by(__.valueMap().with('~tinkerpop.valueMap.tokens')).by(__.inV().id()).by(__.outV().id())))

Then the result should be: 0.000
r
null
And no side effects 0.000

16:11:27.109 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n) RETURN id(n)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.109 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) RETURN id(n) 16:11:27.118 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().project('id(n)').by(__.id()) 16:11:27.121 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH ()-[r]->() RETURN id(r)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.121 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH ()-[r]->() RETURN id(r) 16:11:27.127 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.E().project('id(r)').by(__.id()) 16:11:27.129 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.130 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label 16:11:27.139 [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:11:27.141 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.144 [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:34669, hostUri=ws://localhost:34669/gremlin}} -labels: 0 +labels: 0 +nodes: 0 -nodes: 0 -properties: 0 +properties: 0 -relationships: 0 +relationships: 0

0.000
Given an empty graph 0.000

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

And having executed: 0.000
CREATE (s:Single), (a:A {prop: 42}),
       (b:B {prop: 46}), (c:C)
CREATE (s)-[:REL]->(a),
       (s)-[:REL]->(b),
       (a)-[:REL]->(c),
       (b)-[:LOOP]->(b)

16:11:27.162 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.163 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b) 16:11:27.179 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.addV('Single').as('s').addV('A').as('a').property(single, 'prop', 42).addV('B').as('b').property(single, 'prop', 46).addV('C').as('c').addE('REL').from('s').to('a').addE('REL').from('s').to('b').addE('REL').from('a').to('c').addE('LOOP').from('b').to('b').barrier().limit(0)

0.000
When executing query: 0.000
MATCH (n:Single)
OPTIONAL MATCH (n)-[r]-(m)
WHERE m:NonExistent
RETURN r

16:11:27.262 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n:Single) OPTIONAL MATCH (n)-[r]-(m) WHERE m:NonExistent RETURN r}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.263 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n:Single) OPTIONAL MATCH (n)-[r]-(m) WHERE m:NonExistent RETURN r 16:11:27.287 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().as('n').hasLabel('Single').choose(__.select('n').bothE().dedup().by(__.path()).as('r').otherV().hasLabel('NonExistent'), __.select('n').bothE().dedup().by(__.path()).as('r').otherV().hasLabel('NonExistent'), __.constant(' cypher.null').as('r')).select('r').project('r').by(__.choose(neq(' cypher.null'), __.project(' cypher.element', ' cypher.inv', ' cypher.outv').by(__.valueMap().with('~tinkerpop.valueMap.tokens')).by(__.inV().id()).by(__.outV().id())))

Then the result should be: 0.000
r
null
And no side effects 0.000

16:11:27.293 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n) RETURN id(n)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.294 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) RETURN id(n) 16:11:27.306 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().project('id(n)').by(__.id()) 16:11:27.308 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH ()-[r]->() RETURN id(r)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.309 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH ()-[r]->() RETURN id(r) 16:11:27.322 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.E().project('id(r)').by(__.id()) 16:11:27.324 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.325 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label 16:11:27.333 [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:11:27.336 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.339 [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:34669, hostUri=ws://localhost:34669/gremlin}} -labels: 0 +labels: 0 +nodes: 0 -nodes: 0 -properties: 0 +properties: 0 -relationships: 0 +relationships: 0

0.000
Given an empty graph 0.000

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

And having executed: 0.000
CREATE (s:Single), (a:A {prop: 42}),
       (b:B {prop: 46}), (c:C)
CREATE (s)-[:REL]->(a),
       (s)-[:REL]->(b),
       (a)-[:REL]->(c),
       (b)-[:LOOP]->(b)

16:11:27.360 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.360 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b) 16:11:27.370 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.addV('Single').as('s').addV('A').as('a').property(single, 'prop', 42).addV('B').as('b').property(single, 'prop', 46).addV('C').as('c').addE('REL').from('s').to('a').addE('REL').from('s').to('b').addE('REL').from('a').to('c').addE('LOOP').from('b').to('b').barrier().limit(0)

0.000
When executing query: 0.000
MATCH (n:Single)
OPTIONAL MATCH (n)-[r]-(m)
WHERE m.prop = 42
RETURN m

16:11:27.437 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n:Single) OPTIONAL MATCH (n)-[r]-(m) WHERE m.prop = 42 RETURN m}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.437 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n:Single) OPTIONAL MATCH (n)-[r]-(m) WHERE m.prop = 42 RETURN m 16:11:27.453 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().as('n').hasLabel('Single').choose(__.select('n').bothE().dedup().by(__.path()).otherV().as('m').has('prop', eq(42)), __.select('n').bothE().dedup().by(__.path()).otherV().as('m').has('prop', eq(42)), __.constant(' cypher.null').as('m')).select('m').project('m').by(__.choose(neq(' cypher.null'), __.valueMap().with('~tinkerpop.valueMap.tokens')))

Then the result should be: 0.000
m
(:A {prop: 42})
And no side effects 0.000

16:11:27.463 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n) RETURN id(n)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.464 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) RETURN id(n) 16:11:27.474 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().project('id(n)').by(__.id()) 16:11:27.475 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH ()-[r]->() RETURN id(r)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.476 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH ()-[r]->() RETURN id(r) 16:11:27.485 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.E().project('id(r)').by(__.id()) 16:11:27.488 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.489 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label 16:11:27.494 [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:11:27.497 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.503 [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:34669, hostUri=ws://localhost:34669/gremlin}} -labels: 0 +labels: 0 +nodes: 0 -nodes: 0 -properties: 0 +properties: 0 -relationships: 0 +relationships: 0

0.000
Given an empty graph 0.000

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

And having executed: 0.000
CREATE (s:Single), (a:A {prop: 42}),
       (b:B {prop: 46}), (c:C)
CREATE (s)-[:REL]->(a),
       (s)-[:REL]->(b),
       (a)-[:REL]->(c),
       (b)-[:LOOP]->(b)

16:11:27.522 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.522 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b) 16:11:27.530 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.addV('Single').as('s').addV('A').as('a').property(single, 'prop', 42).addV('B').as('b').property(single, 'prop', 46).addV('C').as('c').addE('REL').from('s').to('a').addE('REL').from('s').to('b').addE('REL').from('a').to('c').addE('LOOP').from('b').to('b').barrier().limit(0)

0.000
When executing query: 0.000
MATCH (n:Single)
OPTIONAL MATCH (n)-[r:TYPE]-(m)
RETURN m:TYPE

16:11:27.591 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n:Single) OPTIONAL MATCH (n)-[r:TYPE]-(m) RETURN m:TYPE}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.592 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n:Single) OPTIONAL MATCH (n)-[r:TYPE]-(m) RETURN m:TYPE 16:11:27.603 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().as('n').hasLabel('Single').choose(__.select('n').bothE('TYPE').dedup().by(__.path()).otherV().as('m'), __.select('n').bothE('TYPE').dedup().by(__.path()).otherV().as('m'), __.constant(' cypher.null').as('m')).select('m').project('m:TYPE').by(__.choose(neq(' cypher.null'), __.choose(__.hasLabel('TYPE'), __.constant(true), __.constant(false))))

Then the result should be: 0.000
m:TYPE
null
And no side effects 0.000

16:11:27.609 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n) RETURN id(n)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.609 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) RETURN id(n) 16:11:27.614 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().project('id(n)').by(__.id()) 16:11:27.617 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH ()-[r]->() RETURN id(r)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.618 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH ()-[r]->() RETURN id(r) 16:11:27.624 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.E().project('id(r)').by(__.id()) 16:11:27.625 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.626 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label 16:11:27.635 [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:11:27.638 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.641 [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:34669, hostUri=ws://localhost:34669/gremlin}} -labels: 0 +labels: 0 +nodes: 0 -nodes: 0 -properties: 0 +properties: 0 -relationships: 0 +relationships: 0

0.000
Given an empty graph 0.000

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

And having executed: 0.000
CREATE (s:Single), (a:A {prop: 42}),
       (b:B {prop: 46}), (c:C)
CREATE (s)-[:REL]->(a),
       (s)-[:REL]->(b),
       (a)-[:REL]->(c),
       (b)-[:LOOP]->(b)

16:11:27.657 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.658 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b) 16:11:27.673 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.addV('Single').as('s').addV('A').as('a').property(single, 'prop', 42).addV('B').as('b').property(single, 'prop', 46).addV('C').as('c').addE('REL').from('s').to('a').addE('REL').from('s').to('b').addE('REL').from('a').to('c').addE('LOOP').from('b').to('b').barrier().limit(0)

0.000
When executing query: 0.000
MATCH (a:Single)
OPTIONAL MATCH (a)-->(b:NonExistent)
OPTIONAL MATCH (a)-->(c:NonExistent)
WITH coalesce(b, c) AS x
MATCH (x)-->(d)
RETURN d

16:11:27.736 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (a:Single) OPTIONAL MATCH (a)-->(b:NonExistent) OPTIONAL MATCH (a)-->(c:NonExistent) WITH coalesce(b, c) AS x MATCH (x)-->(d) RETURN d}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.737 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (a:Single) OPTIONAL MATCH (a)-->(b:NonExistent) OPTIONAL MATCH (a)-->(c:NonExistent) WITH coalesce(b, c) AS x MATCH (x)-->(d) RETURN d 16:11:27.767 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().as('a').hasLabel('Single').choose(__.select('a').outE().inV().as('b').hasLabel('NonExistent'), __.select('a').outE().inV().as('b').hasLabel('NonExistent'), __.constant(' cypher.null').as('b')).choose(__.select('a').outE().inV().as('c').hasLabel('NonExistent'), __.select('a').outE().inV().as('c').hasLabel('NonExistent'), __.constant(' cypher.null').as('c')).select('b', 'c').map(__.coalesce(__.select('b').is(neq(' cypher.null')), __.select('c'))).is(neq(' cypher.null')).outE().inV().project('d').by(__.choose(neq(' cypher.null'), __.valueMap().with('~tinkerpop.valueMap.tokens')))

Then the result should be: 0.000
d
And no side effects 0.000

16:11:27.786 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n) RETURN id(n)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.787 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) RETURN id(n) 16:11:27.793 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().project('id(n)').by(__.id()) 16:11:27.794 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH ()-[r]->() RETURN id(r)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.795 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH ()-[r]->() RETURN id(r) 16:11:27.806 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.E().project('id(r)').by(__.id()) 16:11:27.807 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.808 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label 16:11:27.814 [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:11:27.818 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.821 [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:34669, hostUri=ws://localhost:34669/gremlin}} -labels: 0 +labels: 0 +nodes: 0 -nodes: 0 -properties: 0 +properties: 0 -relationships: 0 +relationships: 0

0.000
Given an empty graph 0.000

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

And having executed: 0.000
CREATE (s:Single), (a:A {prop: 42}),
       (b:B {prop: 46}), (c:C)
CREATE (s)-[:REL]->(a),
       (s)-[:REL]->(b),
       (a)-[:REL]->(c),
       (b)-[:LOOP]->(b)

16:11:27.838 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.838 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b) 16:11:27.846 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.addV('Single').as('s').addV('A').as('a').property(single, 'prop', 42).addV('B').as('b').property(single, 'prop', 46).addV('C').as('c').addE('REL').from('s').to('a').addE('REL').from('s').to('b').addE('REL').from('a').to('c').addE('LOOP').from('b').to('b').barrier().limit(0)

0.000
When executing query: 0.000
OPTIONAL MATCH (a:A)
WITH a AS a
MATCH (b:B)
RETURN a, b

16:11:27.903 [Test worker] DEBUG o.a.t.g.driver.Client - OPTIONAL MATCH (a:A) WITH a AS a MATCH (b:B) RETURN a, b}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.904 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: OPTIONAL MATCH (a:A) WITH a AS a MATCH (b:B) RETURN a, b 16:11:27.916 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.inject(' cypher.start').choose(__.V().as('a').hasLabel('A'), __.V().as('a').hasLabel('A'), __.constant(' cypher.null').as('a')).select('a').as('a').V().as('b').hasLabel('B').select('a', 'b').project('a', 'b').by(__.select('a').choose(neq(' cypher.null'), __.valueMap().with('~tinkerpop.valueMap.tokens'))).by(__.select('b').choose(neq(' cypher.null'), __.valueMap().with('~tinkerpop.valueMap.tokens')))

Then the result should be: 0.000
a b
(:A {prop: 42}) (:B {prop: 46})
And no side effects 0.000

16:11:27.925 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n) RETURN id(n)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.925 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) RETURN id(n) 16:11:27.930 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().project('id(n)').by(__.id()) 16:11:27.933 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH ()-[r]->() RETURN id(r)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.934 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH ()-[r]->() RETURN id(r) 16:11:27.940 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.E().project('id(r)').by(__.id()) 16:11:27.942 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.942 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label 16:11:27.949 [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:11:27.952 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.956 [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:34669, hostUri=ws://localhost:34669/gremlin}} -labels: 0 +labels: 0 +nodes: 0 -nodes: 0 -properties: 0 +properties: 0 -relationships: 0 +relationships: 0

0.000
Given an empty graph 0.000

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

And having executed: 0.000
CREATE (s:Single), (a:A {prop: 42}),
       (b:B {prop: 46}), (c:C)
CREATE (s)-[:REL]->(a),
       (s)-[:REL]->(b),
       (a)-[:REL]->(c),
       (b)-[:LOOP]->(b)

16:11:27.973 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:27.974 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b) 16:11:27.983 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.addV('Single').as('s').addV('A').as('a').property(single, 'prop', 42).addV('B').as('b').property(single, 'prop', 46).addV('C').as('c').addE('REL').from('s').to('a').addE('REL').from('s').to('b').addE('REL').from('a').to('c').addE('LOOP').from('b').to('b').barrier().limit(0)

0.000
When executing query: 0.000
MATCH (a:A)
OPTIONAL MATCH p = (a)-[:X]->(b)
RETURN p

16:11:28.032 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (a:A) OPTIONAL MATCH p = (a)-[:X]->(b) RETURN p}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.033 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (a:A) OPTIONAL MATCH p = (a)-[:X]->(b) RETURN p 16:11:28.047 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().as('a').hasLabel('A').choose(__.V().as(' cypher.match.start.p').as(' GENERATED2').where(__.select(' GENERATED2').where(eq('a'))).outE('X').aggregate(' cypher.path.edge.p').inV().path().from(' cypher.match.start.p').as('p'), __.V().as(' cypher.match.start.p').as(' GENERATED2').where(__.select(' GENERATED2').where(eq('a'))).outE('X').aggregate(' cypher.path.edge.p').inV().path().from(' cypher.match.start.p').as('p'), __.constant(' cypher.null').as('p')).select('p').project('p').by(__.choose(neq(' cypher.null'), __.is(neq(' cypher.unused')).project(' cypher.relationship', ' cypher.element').by(__.select(' cypher.path.edge.p').unfold().project(' cypher.id', ' cypher.inv', ' cypher.outv').by(__.id()).by(__.inV().id()).by(__.outV().id()).fold()).by(__.unfold().is(neq(' cypher.start')).valueMap().with('~tinkerpop.valueMap.tokens').fold())))

Then the result should be: 0.000
p
null
And no side effects 0.000

16:11:28.057 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n) RETURN id(n)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.057 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) RETURN id(n) 16:11:28.061 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().project('id(n)').by(__.id()) 16:11:28.063 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH ()-[r]->() RETURN id(r)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.063 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH ()-[r]->() RETURN id(r) 16:11:28.071 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.E().project('id(r)').by(__.id()) 16:11:28.073 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.073 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label 16:11:28.079 [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:11:28.082 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.086 [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:34669, hostUri=ws://localhost:34669/gremlin}} -labels: 0 +labels: 0 +nodes: 0 -nodes: 0 -properties: 0 +properties: 0 -relationships: 0 +relationships: 0

0.000
Given an empty graph 0.000

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

And having executed: 0.000
CREATE (s:Single), (a:A {prop: 42}),
       (b:B {prop: 46}), (c:C)
CREATE (s)-[:REL]->(a),
       (s)-[:REL]->(b),
       (a)-[:REL]->(c),
       (b)-[:LOOP]->(b)

16:11:28.105 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.106 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b) 16:11:28.113 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.addV('Single').as('s').addV('A').as('a').property(single, 'prop', 42).addV('B').as('b').property(single, 'prop', 46).addV('C').as('c').addE('REL').from('s').to('a').addE('REL').from('s').to('b').addE('REL').from('a').to('c').addE('LOOP').from('b').to('b').barrier().limit(0)

0.000
When executing query: 0.000
MATCH (a:A), (b:C)
OPTIONAL MATCH (x)-->(b)
RETURN x

16:11:28.160 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (a:A), (b:C) OPTIONAL MATCH (x)-->(b) RETURN x}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.160 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (a:A), (b:C) OPTIONAL MATCH (x)-->(b) RETURN x 16:11:28.175 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().hasLabel('A').V().as('b').hasLabel('C').choose(__.V().as('x').outE().inV().as(' GENERATED3').where(__.select(' GENERATED3').where(eq('b'))), __.V().as('x').outE().inV().as(' GENERATED3').where(__.select(' GENERATED3').where(eq('b'))), __.constant(' cypher.null').as('x')).select('x').project('x').by(__.choose(neq(' cypher.null'), __.valueMap().with('~tinkerpop.valueMap.tokens')))

Then the result should be: 0.000
x
(:A {prop: 42})
And no side effects 0.000

16:11:28.180 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n) RETURN id(n)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.180 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) RETURN id(n) 16:11:28.189 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().project('id(n)').by(__.id()) 16:11:28.190 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH ()-[r]->() RETURN id(r)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.191 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH ()-[r]->() RETURN id(r) 16:11:28.197 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.E().project('id(r)').by(__.id()) 16:11:28.201 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.201 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label 16:11:28.209 [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:11:28.211 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.213 [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:34669, hostUri=ws://localhost:34669/gremlin}} -labels: 0 +labels: 0 +nodes: 0 -nodes: 0 -properties: 0 +properties: 0 -relationships: 0 +relationships: 0

0.000
Given an empty graph 0.000

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

And having executed: 0.000
CREATE (s:Single), (a:A {prop: 42}),
       (b:B {prop: 46}), (c:C)
CREATE (s)-[:REL]->(a),
       (s)-[:REL]->(b),
       (a)-[:REL]->(c),
       (b)-[:LOOP]->(b)

16:11:28.229 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.230 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b) 16:11:28.241 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.addV('Single').as('s').addV('A').as('a').property(single, 'prop', 42).addV('B').as('b').property(single, 'prop', 46).addV('C').as('c').addE('REL').from('s').to('a').addE('REL').from('s').to('b').addE('REL').from('a').to('c').addE('LOOP').from('b').to('b').barrier().limit(0)

0.000
Scenario OPTIONAL MATCH with labels on the optional end node
Steps
And having executed: 0.000
CREATE (:X), (x:X), (y1:Y), (y2:Y:Z)
CREATE (x)-[:REL]->(y1),
       (x)-[:REL]->(y2)

16:11:28.251 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (:X), (x:X), (y1:Y), (y2:Y:Z) CREATE (x)-[:REL]->(y1), (x)-[:REL]->(y2)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.252 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (:X), (x:X), (y1:Y), (y2:Y:Z) CREATE (x)-[:REL]->(y1), (x)-[:REL]->(y2) 16:11:28.259 [gremlin-server-worker-1] WARN o.a.t.g.s.h.OpExecutorHandler - Multiple labels are not supported: Y::Z org.opencypher.gremlin.translation.exception.SyntaxException: Multiple labels are not supported: Y::Z at org.opencypher.gremlin.translation.ir.TranslationWriter$.$anonfun$write$4(TranslationWriter.scala:57) at scala.Option.foreach(Option.scala:257) at org.opencypher.gremlin.translation.ir.TranslationWriter$.$anonfun$write$3(TranslationWriter.scala:57) at org.opencypher.gremlin.translation.ir.TranslationWriter$.$anonfun$write$3$adapted(TranslationWriter.scala:56) at scala.collection.TraversableLike$WithFilter.$anonfun$foreach$1(TraversableLike.scala:788) at scala.collection.immutable.Map$Map2.foreach(Map.scala:156) at scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:787) at org.opencypher.gremlin.translation.ir.TranslationWriter$.write(TranslationWriter.scala:56) at org.opencypher.gremlin.translation.ir.TranslationWriter$.write(TranslationWriter.scala:47) at org.opencypher.gremlin.translation.ir.TranslationWriter.write(TranslationWriter.scala) at org.opencypher.gremlin.server.op.cypher.CypherOpProcessor.evalCypher(CypherOpProcessor.java:121) at org.apache.tinkerpop.gremlin.server.handler.OpExecutorHandler.channelRead0(OpExecutorHandler.java:67) at org.apache.tinkerpop.gremlin.server.handler.OpExecutorHandler.channelRead0(OpExecutorHandler.java:43) at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) at io.netty.handler.codec.http.websocketx.Utf8FrameValidator.channelRead(Utf8FrameValidator.java:77) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) at io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler$1.channelRead(WebSocketServerProtocolHandler.java:211) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:297) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:287) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1408) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:930) at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:682) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:617) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:534) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:906) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at java.lang.Thread.run(Thread.java:748)

When executing query: 0.000
MATCH (a:X)
OPTIONAL MATCH (a)-->(b:Y)
RETURN b

16:11:28.318 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (a:X) OPTIONAL MATCH (a)-->(b:Y) RETURN b}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.319 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (a:X) OPTIONAL MATCH (a)-->(b:Y) RETURN b 16:11:28.326 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().as('a').hasLabel('X').choose(__.select('a').outE().inV().as('b').hasLabel('Y'), __.select('a').outE().inV().as('b').hasLabel('Y'), __.constant(' cypher.null').as('b')).select('b').project('b').by(__.choose(neq(' cypher.null'), __.valueMap().with('~tinkerpop.valueMap.tokens')))

Then the result should be: 0.000
org.opencypher.tools.tck.api.Scenario$ScenarioFailedException: Feature "OptionalMatchAcceptance": Scenario "OPTIONAL MATCH with labels on the optional end node" failed with message: 
Expected (in any order of rows):
| b |
| null |
| (:Y) |
| (:Y:Z) |
Actual:
| b |

	at org.opencypher.tools.tck.api.Scenario.$anonfun$executeOnGraph$1(Scenario.scala:90)
	at scala.collection.LinearSeqOptimized.foldLeft(LinearSeqOptimized.scala:122)
	at scala.collection.LinearSeqOptimized.foldLeft$(LinearSeqOptimized.scala:118)
	at scala.collection.immutable.List.foldLeft(List.scala:85)
	at org.opencypher.tools.tck.api.Scenario.executeOnGraph(Scenario.scala:60)
	at org.opencypher.tools.tck.api.Scenario$$anon$1.execute(Scenario.scala:54)
	at org.junit.jupiter.engine.descriptor.JupiterTestDescriptor.executeAndMaskThrowable(JupiterTestDescriptor.java:145)
	at org.junit.jupiter.engine.descriptor.DynamicTestTestDescriptor.execute(DynamicTestTestDescriptor.java:46)
	at org.junit.jupiter.engine.descriptor.DynamicTestTestDescriptor.execute(DynamicTestTestDescriptor.java:24)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.lambda$execute$3(HierarchicalTestExecutor.java:83)
	at org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:77)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.lambda$null$0(HierarchicalTestExecutor.java:85)
	at org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.lambda$invokeTestMethod$1(TestFactoryTestDescriptor.java:80)
	at org.junit.jupiter.engine.execution.ThrowableCollector.execute(ThrowableCollector.java:40)
	at org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.invokeTestMethod(TestFactoryTestDescriptor.java:68)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:110)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:57)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.lambda$execute$3(HierarchicalTestExecutor.java:83)
	at org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:77)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.lambda$null$2(HierarchicalTestExecutor.java:92)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
	at java.util.Iterator.forEachRemaining(Iterator.java:116)
	at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.lambda$execute$3(HierarchicalTestExecutor.java:92)
	at org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:77)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.lambda$null$2(HierarchicalTestExecutor.java:92)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
	at java.util.Iterator.forEachRemaining(Iterator.java:116)
	at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.lambda$execute$3(HierarchicalTestExecutor.java:92)
	at org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:77)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:51)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:43)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:170)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:154)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:90)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:92)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$100(JUnitPlatformTestClassProcessor.java:77)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:73)
	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:32)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
	at com.sun.proxy.$Proxy1.stop(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.stop(TestWorker.java:123)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:155)
	at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:137)
	at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:404)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
	at java.lang.Thread.run(Thread.java:748)
b
null
(:Y)
(:Y:Z)
0.000
Given an empty graph 0.000

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

And having executed: 0.000
CREATE (s:Single), (a:A {prop: 42}),
       (b:B {prop: 46}), (c:C)
CREATE (s)-[:REL]->(a),
       (s)-[:REL]->(b),
       (a)-[:REL]->(c),
       (b)-[:LOOP]->(b)

16:11:28.341 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.342 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b) 16:11:28.352 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.addV('Single').as('s').addV('A').as('a').property(single, 'prop', 42).addV('B').as('b').property(single, 'prop', 46).addV('C').as('c').addE('REL').from('s').to('a').addE('REL').from('s').to('b').addE('REL').from('a').to('c').addE('LOOP').from('b').to('b').barrier().limit(0)

0.000
When executing query: 0.000
MATCH (a:A), (b:B)
OPTIONAL MATCH p = (a)-[:X]->(b)
RETURN p

16:11:28.406 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (a:A), (b:B) OPTIONAL MATCH p = (a)-[:X]->(b) RETURN p}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.406 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (a:A), (b:B) OPTIONAL MATCH p = (a)-[:X]->(b) RETURN p 16:11:28.418 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().as('a').hasLabel('A').V().as('b').hasLabel('B').choose(__.V().as(' cypher.match.start.p').as(' GENERATED3').where(__.select(' GENERATED3').where(eq('a'))).outE('X').aggregate(' cypher.path.edge.p').inV().as(' GENERATED4').where(__.select(' GENERATED4').where(eq('b'))).path().from(' cypher.match.start.p').as('p'), __.V().as(' cypher.match.start.p').as(' GENERATED3').where(__.select(' GENERATED3').where(eq('a'))).outE('X').aggregate(' cypher.path.edge.p').inV().as(' GENERATED4').where(__.select(' GENERATED4').where(eq('b'))).path().from(' cypher.match.start.p').as('p'), __.constant(' cypher.null').as('p')).select('p').project('p').by(__.choose(neq(' cypher.null'), __.is(neq(' cypher.unused')).project(' cypher.relationship', ' cypher.element').by(__.select(' cypher.path.edge.p').unfold().project(' cypher.id', ' cypher.inv', ' cypher.outv').by(__.id()).by(__.inV().id()).by(__.outV().id()).fold()).by(__.unfold().is(neq(' cypher.start')).valueMap().with('~tinkerpop.valueMap.tokens').fold())))

Then the result should be: 0.000
p
null
And no side effects 0.000

16:11:28.424 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n) RETURN id(n)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.424 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) RETURN id(n) 16:11:28.429 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().project('id(n)').by(__.id()) 16:11:28.430 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH ()-[r]->() RETURN id(r)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.430 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH ()-[r]->() RETURN id(r) 16:11:28.440 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.E().project('id(r)').by(__.id()) 16:11:28.441 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.442 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label 16:11:28.447 [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:11:28.450 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.454 [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:34669, hostUri=ws://localhost:34669/gremlin}} -labels: 0 +labels: 0 +nodes: 0 -nodes: 0 -properties: 0 +properties: 0 -relationships: 0 +relationships: 0

0.000
Given an empty graph 0.000

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

And having executed: 0.000
CREATE (s:Single), (a:A {prop: 42}),
       (b:B {prop: 46}), (c:C)
CREATE (s)-[:REL]->(a),
       (s)-[:REL]->(b),
       (a)-[:REL]->(c),
       (b)-[:LOOP]->(b)

16:11:28.469 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.469 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b) 16:11:28.476 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.addV('Single').as('s').addV('A').as('a').property(single, 'prop', 42).addV('B').as('b').property(single, 'prop', 46).addV('C').as('c').addE('REL').from('s').to('a').addE('REL').from('s').to('b').addE('REL').from('a').to('c').addE('LOOP').from('b').to('b').barrier().limit(0)

0.000
Scenario Variable length optional relationships
Steps
When executing query: 0.000
MATCH (a:Single)
OPTIONAL MATCH (a)-[*]->(b)
RETURN b

16:11:28.536 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (a:Single) OPTIONAL MATCH (a)-[*]->(b) RETURN b 16:11:28.539 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (a:Single) OPTIONAL MATCH (a)-[*]->(b) RETURN b}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.549 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().as('a').hasLabel('Single').choose(__.select('a').repeat(__.outE().as(' UNNAMED36').inV()).emit().times(10).as('b').optional(__.select(all, ' UNNAMED36').as(' UNNAMED36')), __.select('a').repeat(__.outE().as(' UNNAMED36').inV()).emit().times(10).as('b').optional(__.select(all, ' UNNAMED36').as(' UNNAMED36')), __.constant(' cypher.null').as(' UNNAMED36').as('b')).select('b').project('b').by(__.choose(neq(' cypher.null'), __.valueMap().with('~tinkerpop.valueMap.tokens')))

Then the result should be: 0.000
org.opencypher.tools.tck.api.Scenario$ScenarioFailedException: Feature "OptionalMatchAcceptance": Scenario "Variable length optional relationships" failed with message: 
Expected (in any order of rows):
| b |
| (:A {prop: 42}) |
| (:B {prop: 46}) |
| (:B {prop: 46}) |
| (:C) |
Actual:
| b |
| (:A {prop: 42}) |
| (:B {prop: 46}) |
| (:C) |
| (:B {prop: 46}) |
| (:B {prop: 46}) |
| (:B {prop: 46}) |
| (:B {prop: 46}) |
| (:B {prop: 46}) |
| (:B {prop: 46}) |
| (:B {prop: 46}) |
| (:B {prop: 46}) |
| (:B {prop: 46}) |
	at org.opencypher.tools.tck.api.Scenario.$anonfun$executeOnGraph$1(Scenario.scala:90)
	at scala.collection.LinearSeqOptimized.foldLeft(LinearSeqOptimized.scala:122)
	at scala.collection.LinearSeqOptimized.foldLeft$(LinearSeqOptimized.scala:118)
	at scala.collection.immutable.List.foldLeft(List.scala:85)
	at org.opencypher.tools.tck.api.Scenario.executeOnGraph(Scenario.scala:60)
	at org.opencypher.tools.tck.api.Scenario$$anon$1.execute(Scenario.scala:54)
	at org.junit.jupiter.engine.descriptor.JupiterTestDescriptor.executeAndMaskThrowable(JupiterTestDescriptor.java:145)
	at org.junit.jupiter.engine.descriptor.DynamicTestTestDescriptor.execute(DynamicTestTestDescriptor.java:46)
	at org.junit.jupiter.engine.descriptor.DynamicTestTestDescriptor.execute(DynamicTestTestDescriptor.java:24)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.lambda$execute$3(HierarchicalTestExecutor.java:83)
	at org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:77)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.lambda$null$0(HierarchicalTestExecutor.java:85)
	at org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.lambda$invokeTestMethod$1(TestFactoryTestDescriptor.java:80)
	at org.junit.jupiter.engine.execution.ThrowableCollector.execute(ThrowableCollector.java:40)
	at org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.invokeTestMethod(TestFactoryTestDescriptor.java:68)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:110)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:57)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.lambda$execute$3(HierarchicalTestExecutor.java:83)
	at org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:77)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.lambda$null$2(HierarchicalTestExecutor.java:92)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
	at java.util.Iterator.forEachRemaining(Iterator.java:116)
	at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.lambda$execute$3(HierarchicalTestExecutor.java:92)
	at org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:77)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.lambda$null$2(HierarchicalTestExecutor.java:92)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
	at java.util.Iterator.forEachRemaining(Iterator.java:116)
	at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.lambda$execute$3(HierarchicalTestExecutor.java:92)
	at org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:77)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:51)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:43)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:170)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:154)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:90)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:92)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$100(JUnitPlatformTestClassProcessor.java:77)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:73)
	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:32)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
	at com.sun.proxy.$Proxy1.stop(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.stop(TestWorker.java:123)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:155)
	at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:137)
	at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:404)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
	at java.lang.Thread.run(Thread.java:748)
b
(:A {prop: 42})
(:B {prop: 46})
(:B {prop: 46})
(:C)
0.000
Given an empty graph 0.000

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

And having executed: 0.000
CREATE (s:Single), (a:A {prop: 42}),
       (b:B {prop: 46}), (c:C)
CREATE (s)-[:REL]->(a),
       (s)-[:REL]->(b),
       (a)-[:REL]->(c),
       (b)-[:LOOP]->(b)

16:11:28.568 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.569 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b) 16:11:28.579 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.addV('Single').as('s').addV('A').as('a').property(single, 'prop', 42).addV('B').as('b').property(single, 'prop', 46).addV('C').as('c').addE('REL').from('s').to('a').addE('REL').from('s').to('b').addE('REL').from('a').to('c').addE('LOOP').from('b').to('b').barrier().limit(0)

0.000
When executing query: 0.000
MATCH (a:Single)
OPTIONAL MATCH (a)-[*3..]-(b)
RETURN b

16:11:28.630 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (a:Single) OPTIONAL MATCH (a)-[*3..]-(b) RETURN b}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.630 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (a:Single) OPTIONAL MATCH (a)-[*3..]-(b) RETURN b 16:11:28.645 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().as('a').hasLabel('Single').choose(__.select('a').as(' cypher.path.start.GENERATED3').emit(__.loops().is(gte(3))).repeat(__.bothE().dedup().by(__.path()).as(' UNNAMED36').otherV()).times(10).simplePath().from(' cypher.path.start.GENERATED3').as('b').optional(__.select(all, ' UNNAMED36').as(' UNNAMED36')), __.select('a').as(' cypher.path.start.GENERATED3').emit(__.loops().is(gte(3))).repeat(__.bothE().dedup().by(__.path()).as(' UNNAMED36').otherV()).times(10).simplePath().from(' cypher.path.start.GENERATED3').as('b').optional(__.select(all, ' UNNAMED36').as(' UNNAMED36')), __.constant(' cypher.null').as(' UNNAMED36').as('b')).select('b').project('b').by(__.choose(neq(' cypher.null'), __.valueMap().with('~tinkerpop.valueMap.tokens')))

Then the result should be: 0.000
b
null
And no side effects 0.000

16:11:28.756 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n) RETURN id(n)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.756 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) RETURN id(n) 16:11:28.762 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().project('id(n)').by(__.id()) 16:11:28.768 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH ()-[r]->() RETURN id(r)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.768 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH ()-[r]->() RETURN id(r) 16:11:28.775 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.E().project('id(r)').by(__.id()) 16:11:28.777 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.778 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label 16:11:28.787 [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:11:28.790 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.792 [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:34669, hostUri=ws://localhost:34669/gremlin}} -labels: 0 +labels: 0 +nodes: 0 -nodes: 0 -properties: 0 +properties: 0 -relationships: 0 +relationships: 0

0.000
Given an empty graph 0.000

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

And having executed: 0.000
CREATE (s:Single), (a:A {prop: 42}),
       (b:B {prop: 46}), (c:C)
CREATE (s)-[:REL]->(a),
       (s)-[:REL]->(b),
       (a)-[:REL]->(c),
       (b)-[:LOOP]->(b)

16:11:28.810 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.811 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b) 16:11:28.824 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.addV('Single').as('s').addV('A').as('a').property(single, 'prop', 42).addV('B').as('b').property(single, 'prop', 46).addV('C').as('c').addE('REL').from('s').to('a').addE('REL').from('s').to('b').addE('REL').from('a').to('c').addE('LOOP').from('b').to('b').barrier().limit(0)

0.000
When executing query: 0.000
MATCH (a:B)
OPTIONAL MATCH (a)-[r]-(a)
RETURN r

16:11:28.888 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (a:B) OPTIONAL MATCH (a)-[r]-(a) RETURN r}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.888 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (a:B) OPTIONAL MATCH (a)-[r]-(a) RETURN r 16:11:28.898 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().as('a').hasLabel('B').choose(__.select('a').bothE().dedup().by(__.path()).as('r').otherV().as(' GENERATED5').where(__.select(' GENERATED5').where(eq('a'))), __.select('a').bothE().dedup().by(__.path()).as('r').otherV().as(' GENERATED5').where(__.select(' GENERATED5').where(eq('a'))), __.constant(' cypher.null').as('r')).select('r').project('r').by(__.choose(neq(' cypher.null'), __.project(' cypher.element', ' cypher.inv', ' cypher.outv').by(__.valueMap().with('~tinkerpop.valueMap.tokens')).by(__.inV().id()).by(__.outV().id())))

Then the result should be: 0.000
r
[:LOOP]
And no side effects 0.000

16:11:28.906 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n) RETURN id(n)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.907 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) RETURN id(n) 16:11:28.913 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().project('id(n)').by(__.id()) 16:11:28.915 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH ()-[r]->() RETURN id(r)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.916 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH ()-[r]->() RETURN id(r) 16:11:28.925 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.E().project('id(r)').by(__.id()) 16:11:28.927 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.927 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label 16:11:28.936 [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:11:28.939 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.941 [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:34669, hostUri=ws://localhost:34669/gremlin}} -labels: 0 +labels: 0 +nodes: 0 -nodes: 0 -properties: 0 +properties: 0 -relationships: 0 +relationships: 0

0.000
Given an empty graph 0.000

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

And having executed: 0.000
CREATE (s:Single), (a:A {prop: 42}),
       (b:B {prop: 46}), (c:C)
CREATE (s)-[:REL]->(a),
       (s)-[:REL]->(b),
       (a)-[:REL]->(c),
       (b)-[:LOOP]->(b)

16:11:28.955 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:28.955 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b) 16:11:28.962 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.addV('Single').as('s').addV('A').as('a').property(single, 'prop', 42).addV('B').as('b').property(single, 'prop', 46).addV('C').as('c').addE('REL').from('s').to('a').addE('REL').from('s').to('b').addE('REL').from('a').to('c').addE('LOOP').from('b').to('b').barrier().limit(0)

0.000
When executing query: 0.000
MATCH (a)
WHERE NOT (a:B)
OPTIONAL MATCH (a)-[r]->(a)
RETURN r

16:11:29.027 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (a) WHERE NOT (a:B) OPTIONAL MATCH (a)-[r]->(a) RETURN r}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.027 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (a) WHERE NOT (a:B) OPTIONAL MATCH (a)-[r]->(a) RETURN r 16:11:29.037 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().as('a').where(__.not(__.select('a').hasLabel('B'))).choose(__.select('a').outE().as('r').inV().as(' GENERATED5').where(__.select(' GENERATED5').where(eq('a'))), __.select('a').outE().as('r').inV().as(' GENERATED5').where(__.select(' GENERATED5').where(eq('a'))), __.constant(' cypher.null').as('r')).select('r').project('r').by(__.choose(neq(' cypher.null'), __.project(' cypher.element', ' cypher.inv', ' cypher.outv').by(__.valueMap().with('~tinkerpop.valueMap.tokens')).by(__.inV().id()).by(__.outV().id())))

Then the result should be: 0.000
r
null
null
null
And no side effects 0.000

16:11:29.042 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n) RETURN id(n)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.044 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) RETURN id(n) 16:11:29.048 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().project('id(n)').by(__.id()) 16:11:29.051 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH ()-[r]->() RETURN id(r)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.051 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH ()-[r]->() RETURN id(r) 16:11:29.057 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.E().project('id(r)').by(__.id()) 16:11:29.059 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.059 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label 16:11:29.063 [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:11:29.066 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.071 [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:34669, hostUri=ws://localhost:34669/gremlin}} -labels: 0 +labels: 0 +nodes: 0 -nodes: 0 -properties: 0 +properties: 0 -relationships: 0 +relationships: 0

0.000
Given an empty graph 0.000

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

And having executed: 0.000
CREATE (s:Single), (a:A {prop: 42}),
       (b:B {prop: 46}), (c:C)
CREATE (s)-[:REL]->(a),
       (s)-[:REL]->(b),
       (a)-[:REL]->(c),
       (b)-[:LOOP]->(b)

16:11:29.100 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.101 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b) 16:11:29.109 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.addV('Single').as('s').addV('A').as('a').property(single, 'prop', 42).addV('B').as('b').property(single, 'prop', 46).addV('C').as('c').addE('REL').from('s').to('a').addE('REL').from('s').to('b').addE('REL').from('a').to('c').addE('LOOP').from('b').to('b').barrier().limit(0)

0.000
When executing query: 0.000
MATCH (a:Single), (x:C)
OPTIONAL MATCH (a)-[*]->(x)
RETURN x

16:11:29.162 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (a:Single), (x:C) OPTIONAL MATCH (a)-[*]->(x) RETURN x}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.163 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (a:Single), (x:C) OPTIONAL MATCH (a)-[*]->(x) RETURN x 16:11:29.172 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().as('a').hasLabel('Single').V().as('x').hasLabel('C').choose(__.select('a').repeat(__.outE().as(' UNNAMED43').inV()).emit().times(10).as(' GENERATED5').where(__.select(' GENERATED5').where(eq('x'))).optional(__.select(all, ' UNNAMED43').as(' UNNAMED43')), __.select('a').repeat(__.outE().as(' UNNAMED43').inV()).emit().times(10).as(' GENERATED5').where(__.select(' GENERATED5').where(eq('x'))).optional(__.select(all, ' UNNAMED43').as(' UNNAMED43')), __.constant(' cypher.null').as(' UNNAMED43')).select('x').project('x').by(__.choose(neq(' cypher.null'), __.valueMap().with('~tinkerpop.valueMap.tokens')))

Then the result should be: 0.000
x
(:C)
And no side effects 0.000

16:11:29.176 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n) RETURN id(n)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.176 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) RETURN id(n) 16:11:29.181 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().project('id(n)').by(__.id()) 16:11:29.182 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH ()-[r]->() RETURN id(r)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.184 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH ()-[r]->() RETURN id(r) 16:11:29.192 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.E().project('id(r)').by(__.id()) 16:11:29.193 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.193 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label 16:11:29.199 [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:11:29.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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.206 [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:34669, hostUri=ws://localhost:34669/gremlin}} -labels: 0 +labels: 0 +nodes: 0 -nodes: 0 -properties: 0 +properties: 0 -relationships: 0 +relationships: 0

0.000
Given an empty graph 0.000

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

And having executed: 0.000
CREATE (s:Single), (a:A {prop: 42}),
       (b:B {prop: 46}), (c:C)
CREATE (s)-[:REL]->(a),
       (s)-[:REL]->(b),
       (a)-[:REL]->(c),
       (b)-[:LOOP]->(b)

16:11:29.222 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.222 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b) 16:11:29.229 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.addV('Single').as('s').addV('A').as('a').property(single, 'prop', 42).addV('B').as('b').property(single, 'prop', 46).addV('C').as('c').addE('REL').from('s').to('a').addE('REL').from('s').to('b').addE('REL').from('a').to('c').addE('LOOP').from('b').to('b').barrier().limit(0)

0.000
When executing query: 0.000
MATCH (a:A), (b:B)
OPTIONAL MATCH p = (a)-[*]->(b)
RETURN p

16:11:29.277 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (a:A), (b:B) OPTIONAL MATCH p = (a)-[*]->(b) RETURN p}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.277 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (a:A), (b:B) OPTIONAL MATCH p = (a)-[*]->(b) RETURN p 16:11:29.288 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().as('a').hasLabel('A').V().as('b').hasLabel('B').choose(__.V().as(' cypher.match.start.p').as(' GENERATED3').where(__.select(' GENERATED3').where(eq('a'))).repeat(__.outE().as(' UNNAMED42').aggregate(' cypher.path.edge.p').inV()).emit().times(10).as(' GENERATED4').where(__.select(' GENERATED4').where(eq('b'))).path().from(' cypher.match.start.p').as('p').optional(__.select(all, ' UNNAMED42').as(' UNNAMED42')), __.V().as(' cypher.match.start.p').as(' GENERATED3').where(__.select(' GENERATED3').where(eq('a'))).repeat(__.outE().as(' UNNAMED42').aggregate(' cypher.path.edge.p').inV()).emit().times(10).as(' GENERATED4').where(__.select(' GENERATED4').where(eq('b'))).path().from(' cypher.match.start.p').as('p').optional(__.select(all, ' UNNAMED42').as(' UNNAMED42')), __.constant(' cypher.null').as(' UNNAMED42').as('p')).select('p').project('p').by(__.choose(neq(' cypher.null'), __.is(neq(' cypher.unused')).project(' cypher.relationship', ' cypher.element').by(__.select(' cypher.path.edge.p').unfold().project(' cypher.id', ' cypher.inv', ' cypher.outv').by(__.id()).by(__.inV().id()).by(__.outV().id()).fold()).by(__.unfold().is(neq(' cypher.start')).valueMap().with('~tinkerpop.valueMap.tokens').fold())))

Then the result should be: 0.000
p
null
And no side effects 0.000

16:11:29.294 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n) RETURN id(n)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.294 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) RETURN id(n) 16:11:29.301 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().project('id(n)').by(__.id()) 16:11:29.304 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH ()-[r]->() RETURN id(r)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.305 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH ()-[r]->() RETURN id(r) 16:11:29.311 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.E().project('id(r)').by(__.id()) 16:11:29.313 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.313 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label 16:11:29.321 [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:11:29.323 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.325 [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:34669, hostUri=ws://localhost:34669/gremlin}} -labels: 0 +labels: 0 +nodes: 0 -nodes: 0 -properties: 0 +properties: 0 -relationships: 0 +relationships: 0

0.000
Given an empty graph 0.000

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

And having executed: 0.000
CREATE (s:Single), (a:A {prop: 42}),
       (b:B {prop: 46}), (c:C)
CREATE (s)-[:REL]->(a),
       (s)-[:REL]->(b),
       (a)-[:REL]->(c),
       (b)-[:LOOP]->(b)

16:11:29.340 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.341 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b) 16:11:29.348 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.addV('Single').as('s').addV('A').as('a').property(single, 'prop', 42).addV('B').as('b').property(single, 'prop', 46).addV('C').as('c').addE('REL').from('s').to('a').addE('REL').from('s').to('b').addE('REL').from('a').to('c').addE('LOOP').from('b').to('b').barrier().limit(0)

0.000
When executing query: 0.000
MATCH (a:Single), (c:C)
OPTIONAL MATCH (a)-->(b)-->(c)
RETURN b

16:11:29.393 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (a:Single), (c:C) OPTIONAL MATCH (a)-->(b)-->(c) RETURN b}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.394 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (a:Single), (c:C) OPTIONAL MATCH (a)-->(b)-->(c) RETURN b 16:11:29.410 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().as('a').hasLabel('Single').V().as('c').hasLabel('C').choose(__.select('a').outE().as(' UNNAMED43').inV().as('b').outE().as(' UNNAMED49').inV().as(' GENERATED6').where(__.select(' GENERATED6').where(eq('c'))).where(__.select(' UNNAMED43').where(neq(' UNNAMED49'))), __.select('a').outE().as(' UNNAMED43').inV().as('b').outE().as(' UNNAMED49').inV().as(' GENERATED6').where(__.select(' GENERATED6').where(eq('c'))).where(__.select(' UNNAMED43').where(neq(' UNNAMED49'))), __.constant(' cypher.null').as(' UNNAMED43').as('b').as(' UNNAMED49')).select('b').project('b').by(__.choose(neq(' cypher.null'), __.valueMap().with('~tinkerpop.valueMap.tokens')))

Then the result should be: 0.000
b
(:A {prop: 42})
And no side effects 0.000

16:11:29.413 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n) RETURN id(n)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.413 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) RETURN id(n) 16:11:29.419 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().project('id(n)').by(__.id()) 16:11:29.421 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH ()-[r]->() RETURN id(r)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.421 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH ()-[r]->() RETURN id(r) 16:11:29.426 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.E().project('id(r)').by(__.id()) 16:11:29.427 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.427 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label 16:11:29.434 [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:11:29.436 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.439 [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:34669, hostUri=ws://localhost:34669/gremlin}} -labels: 0 +labels: 0 +nodes: 0 -nodes: 0 -properties: 0 +properties: 0 -relationships: 0 +relationships: 0

0.000
Given an empty graph 0.000

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

And having executed: 0.000
CREATE (s:Single), (a:A {prop: 42}),
       (b:B {prop: 46}), (c:C)
CREATE (s)-[:REL]->(a),
       (s)-[:REL]->(b),
       (a)-[:REL]->(c),
       (b)-[:LOOP]->(b)

16:11:29.454 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.455 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b) 16:11:29.462 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.addV('Single').as('s').addV('A').as('a').property(single, 'prop', 42).addV('B').as('b').property(single, 'prop', 46).addV('C').as('c').addE('REL').from('s').to('a').addE('REL').from('s').to('b').addE('REL').from('a').to('c').addE('LOOP').from('b').to('b').barrier().limit(0)

0.000
When executing query: 0.000
MATCH (a:A), (c:C)
OPTIONAL MATCH (a)-->(b)-->(c)
RETURN b

16:11:29.517 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (a:A), (c:C) OPTIONAL MATCH (a)-->(b)-->(c) RETURN b}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.519 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (a:A), (c:C) OPTIONAL MATCH (a)-->(b)-->(c) RETURN b 16:11:29.529 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().as('a').hasLabel('A').V().as('c').hasLabel('C').choose(__.select('a').outE().as(' UNNAMED38').inV().as('b').outE().as(' UNNAMED44').inV().as(' GENERATED6').where(__.select(' GENERATED6').where(eq('c'))).where(__.select(' UNNAMED38').where(neq(' UNNAMED44'))), __.select('a').outE().as(' UNNAMED38').inV().as('b').outE().as(' UNNAMED44').inV().as(' GENERATED6').where(__.select(' GENERATED6').where(eq('c'))).where(__.select(' UNNAMED38').where(neq(' UNNAMED44'))), __.constant(' cypher.null').as(' UNNAMED38').as('b').as(' UNNAMED44')).select('b').project('b').by(__.choose(neq(' cypher.null'), __.valueMap().with('~tinkerpop.valueMap.tokens')))

Then the result should be: 0.000
b
null
And no side effects 0.000

16:11:29.533 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n) RETURN id(n)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.535 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) RETURN id(n) 16:11:29.542 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().project('id(n)').by(__.id()) 16:11:29.544 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH ()-[r]->() RETURN id(r)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.544 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH ()-[r]->() RETURN id(r) 16:11:29.551 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.E().project('id(r)').by(__.id()) 16:11:29.553 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.553 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label 16:11:29.558 [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:11:29.559 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.561 [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:34669, hostUri=ws://localhost:34669/gremlin}} -labels: 0 +labels: 0 +nodes: 0 -nodes: 0 -properties: 0 +properties: 0 -relationships: 0 +relationships: 0

0.000
Given an empty graph 0.000

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

And having executed: 0.000
CREATE (s:Single), (a:A {prop: 42}),
       (b:B {prop: 46}), (c:C)
CREATE (s)-[:REL]->(a),
       (s)-[:REL]->(b),
       (a)-[:REL]->(c),
       (b)-[:LOOP]->(b)

16:11:29.573 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.573 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b) 16:11:29.579 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.addV('Single').as('s').addV('A').as('a').property(single, 'prop', 42).addV('B').as('b').property(single, 'prop', 46).addV('C').as('c').addE('REL').from('s').to('a').addE('REL').from('s').to('b').addE('REL').from('a').to('c').addE('LOOP').from('b').to('b').barrier().limit(0)

0.000
When executing query: 0.000
MATCH (a:A), (b:B)
OPTIONAL MATCH (a)-->(x)
OPTIONAL MATCH (x)-[r]->(b)
RETURN x, r

16:11:29.627 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (a:A), (b:B) OPTIONAL MATCH (a)-->(x) OPTIONAL MATCH (x)-[r]->(b) RETURN x, r}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.628 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (a:A), (b:B) OPTIONAL MATCH (a)-->(x) OPTIONAL MATCH (x)-[r]->(b) RETURN x, r 16:11:29.641 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().as('a').hasLabel('A').V().as('b').hasLabel('B').choose(__.select('a').outE().inV().as('x'), __.select('a').outE().inV().as('x'), __.constant(' cypher.null').as('x')).choose(__.select('x').is(neq(' cypher.null')).outE().as('r').inV().as(' GENERATED8').where(__.select(' GENERATED8').where(eq('b'))), __.select('x').is(neq(' cypher.null')).outE().as('r').inV().as(' GENERATED8').where(__.select(' GENERATED8').where(eq('b'))), __.constant(' cypher.null').as('r')).select('x', 'r').project('x', 'r').by(__.select('x').choose(neq(' cypher.null'), __.valueMap().with('~tinkerpop.valueMap.tokens'))).by(__.select('r').choose(neq(' cypher.null'), __.project(' cypher.element', ' cypher.inv', ' cypher.outv').by(__.valueMap().with('~tinkerpop.valueMap.tokens')).by(__.inV().id()).by(__.outV().id())))

Then the result should be: 0.000
x r
(:C) null
And no side effects 0.000

16:11:29.646 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n) RETURN id(n)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.646 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) RETURN id(n) 16:11:29.653 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().project('id(n)').by(__.id()) 16:11:29.655 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH ()-[r]->() RETURN id(r)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.656 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH ()-[r]->() RETURN id(r) 16:11:29.661 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.E().project('id(r)').by(__.id()) 16:11:29.663 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.664 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label 16:11:29.671 [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:11:29.673 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.675 [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:34669, hostUri=ws://localhost:34669/gremlin}} -labels: 0 +labels: 0 +nodes: 0 -nodes: 0 -properties: 0 +properties: 0 -relationships: 0 +relationships: 0

0.000
Given an empty graph 0.000

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

And having executed: 0.000
CREATE (s:Single), (a:A {prop: 42}),
       (b:B {prop: 46}), (c:C)
CREATE (s)-[:REL]->(a),
       (s)-[:REL]->(b),
       (a)-[:REL]->(c),
       (b)-[:LOOP]->(b)

16:11:29.693 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.693 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b) 16:11:29.704 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.addV('Single').as('s').addV('A').as('a').property(single, 'prop', 42).addV('B').as('b').property(single, 'prop', 46).addV('C').as('c').addE('REL').from('s').to('a').addE('REL').from('s').to('b').addE('REL').from('a').to('c').addE('LOOP').from('b').to('b').barrier().limit(0)

0.000
When executing query: 0.000
OPTIONAL MATCH (a:NotThere)
WITH a
MATCH (b:B)
WITH a, b
OPTIONAL MATCH (b)-[r:NOR_THIS]->(a)
RETURN a, b, r

16:11:29.748 [Test worker] DEBUG o.a.t.g.driver.Client - OPTIONAL MATCH (a:NotThere) WITH a MATCH (b:B) WITH a, b OPTIONAL MATCH (b)-[r:NOR_THIS]->(a) RETURN a, b, r}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.748 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: OPTIONAL MATCH (a:NotThere) WITH a MATCH (b:B) WITH a, b OPTIONAL MATCH (b)-[r:NOR_THIS]->(a) RETURN a, b, r 16:11:29.760 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.inject(' cypher.start').choose(__.V().as('a').hasLabel('NotThere'), __.V().as('a').hasLabel('NotThere'), __.constant(' cypher.null').as('a')).select('a').as('a').V().as('b').hasLabel('B').select('a', 'b').project('a', 'b').by(__.select('a')).by(__.select('b')).as(' GENERATED2').select('a').as('a').select(' GENERATED2').select('b').as('b').choose(__.select('b').is(neq(' cypher.null')).outE('NOR_THIS').as('r').inV().as(' GENERATED7').where(__.select(' GENERATED7').where(eq('a'))), __.select('b').is(neq(' cypher.null')).outE('NOR_THIS').as('r').inV().as(' GENERATED7').where(__.select(' GENERATED7').where(eq('a'))), __.constant(' cypher.null').as('r')).select('a', 'b', 'r').project('a', 'b', 'r').by(__.select('a').choose(neq(' cypher.null'), __.valueMap().with('~tinkerpop.valueMap.tokens'))).by(__.select('b').choose(neq(' cypher.null'), __.valueMap().with('~tinkerpop.valueMap.tokens'))).by(__.select('r').choose(neq(' cypher.null'), __.project(' cypher.element', ' cypher.inv', ' cypher.outv').by(__.valueMap().with('~tinkerpop.valueMap.tokens')).by(__.inV().id()).by(__.outV().id())))

Then the result should be: 0.000
a b r
null (:B {prop: 46}) null
And no side effects 0.000

16:11:29.764 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n) RETURN id(n)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.764 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) RETURN id(n) 16:11:29.773 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().project('id(n)').by(__.id()) 16:11:29.774 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH ()-[r]->() RETURN id(r)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.774 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH ()-[r]->() RETURN id(r) 16:11:29.779 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.E().project('id(r)').by(__.id()) 16:11:29.780 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.780 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label 16:11:29.787 [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:11:29.790 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.791 [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:34669, hostUri=ws://localhost:34669/gremlin}} -labels: 0 +labels: 0 +nodes: 0 -nodes: 0 -properties: 0 +properties: 0 -relationships: 0 +relationships: 0

0.000
Given an empty graph 0.000

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

And having executed: 0.000
CREATE (s:Single), (a:A {prop: 42}),
       (b:B {prop: 46}), (c:C)
CREATE (s)-[:REL]->(a),
       (s)-[:REL]->(b),
       (a)-[:REL]->(c),
       (b)-[:LOOP]->(b)

16:11:29.809 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.809 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b) 16:11:29.820 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.addV('Single').as('s').addV('A').as('a').property(single, 'prop', 42).addV('B').as('b').property(single, 'prop', 46).addV('C').as('c').addE('REL').from('s').to('a').addE('REL').from('s').to('b').addE('REL').from('a').to('c').addE('LOOP').from('b').to('b').barrier().limit(0)

0.000
When executing query: 0.000
OPTIONAL MATCH (a:NotThere)
OPTIONAL MATCH (b:NotThere)
WITH a, b
OPTIONAL MATCH (b)-[r:NOR_THIS]->(a)
RETURN a, b, r

16:11:29.861 [Test worker] DEBUG o.a.t.g.driver.Client - OPTIONAL MATCH (a:NotThere) OPTIONAL MATCH (b:NotThere) WITH a, b OPTIONAL MATCH (b)-[r:NOR_THIS]->(a) RETURN a, b, r}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.862 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: OPTIONAL MATCH (a:NotThere) OPTIONAL MATCH (b:NotThere) WITH a, b OPTIONAL MATCH (b)-[r:NOR_THIS]->(a) RETURN a, b, r 16:11:29.872 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.inject(' cypher.start').choose(__.V().as('a').hasLabel('NotThere'), __.V().as('a').hasLabel('NotThere'), __.constant(' cypher.null').as('a')).choose(__.V().as('b').hasLabel('NotThere'), __.V().as('b').hasLabel('NotThere'), __.constant(' cypher.null').as('b')).select('a', 'b').project('a', 'b').by(__.select('a')).by(__.select('b')).as(' GENERATED1').select('a').as('a').select(' GENERATED1').select('b').as('b').choose(__.select('b').is(neq(' cypher.null')).outE('NOR_THIS').as('r').inV().as(' GENERATED6').where(__.select(' GENERATED6').where(eq('a'))), __.select('b').is(neq(' cypher.null')).outE('NOR_THIS').as('r').inV().as(' GENERATED6').where(__.select(' GENERATED6').where(eq('a'))), __.constant(' cypher.null').as('r')).select('a', 'b', 'r').project('a', 'b', 'r').by(__.select('a').choose(neq(' cypher.null'), __.valueMap().with('~tinkerpop.valueMap.tokens'))).by(__.select('b').choose(neq(' cypher.null'), __.valueMap().with('~tinkerpop.valueMap.tokens'))).by(__.select('r').choose(neq(' cypher.null'), __.project(' cypher.element', ' cypher.inv', ' cypher.outv').by(__.valueMap().with('~tinkerpop.valueMap.tokens')).by(__.inV().id()).by(__.outV().id())))

Then the result should be: 0.000
a b r
null null null
And no side effects 0.000

16:11:29.876 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n) RETURN id(n)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.876 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) RETURN id(n) 16:11:29.880 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().project('id(n)').by(__.id()) 16:11:29.881 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH ()-[r]->() RETURN id(r)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.881 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH ()-[r]->() RETURN id(r) 16:11:29.888 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.E().project('id(r)').by(__.id()) 16:11:29.890 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.890 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label 16:11:29.895 [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:11:29.896 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.898 [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:34669, hostUri=ws://localhost:34669/gremlin}} -labels: 0 +labels: 0 +nodes: 0 -nodes: 0 -properties: 0 +properties: 0 -relationships: 0 +relationships: 0

0.000
Given an empty graph 0.000

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

And having executed: 0.000
CREATE (s:Single), (a:A {prop: 42}),
       (b:B {prop: 46}), (c:C)
CREATE (s)-[:REL]->(a),
       (s)-[:REL]->(b),
       (a)-[:REL]->(c),
       (b)-[:LOOP]->(b)

16:11:29.909 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.910 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b) 16:11:29.915 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.addV('Single').as('s').addV('A').as('a').property(single, 'prop', 42).addV('B').as('b').property(single, 'prop', 46).addV('C').as('c').addE('REL').from('s').to('a').addE('REL').from('s').to('b').addE('REL').from('a').to('c').addE('LOOP').from('b').to('b').barrier().limit(0)

0.000
And having executed: 0.000
CREATE (:DoesExist {property: 42})
CREATE (:DoesExist {property: 43})
CREATE (:DoesExist {property: 44})

16:11:29.924 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (:DoesExist {property: 42}) CREATE (:DoesExist {property: 43}) CREATE (:DoesExist {property: 44})}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.924 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (:DoesExist {property: 42}) CREATE (:DoesExist {property: 43}) CREATE (:DoesExist {property: 44}) 16:11:29.928 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.addV('DoesExist').property(single, 'property', 42).addV('DoesExist').property(single, 'property', 43).addV('DoesExist').property(single, 'property', 44).barrier().limit(0)

When executing query: 0.000
OPTIONAL MATCH (f:DoesExist)
OPTIONAL MATCH (n:DoesNotExist)
RETURN collect(DISTINCT n.property) AS a, collect(DISTINCT f.property) AS b

16:11:29.965 [Test worker] DEBUG o.a.t.g.driver.Client - OPTIONAL MATCH (f:DoesExist) OPTIONAL MATCH (n:DoesNotExist) RETURN collect(DISTINCT n.property) AS a, collect(DISTINCT f.property) AS b}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.966 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: OPTIONAL MATCH (f:DoesExist) OPTIONAL MATCH (n:DoesNotExist) RETURN collect(DISTINCT n.property) AS a, collect(DISTINCT f.property) AS b 16:11:29.979 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.inject(' cypher.start').choose(__.V().as('f').hasLabel('DoesExist'), __.V().as('f').hasLabel('DoesExist'), __.constant(' cypher.null').as('f')).choose(__.V().as('n').hasLabel('DoesNotExist'), __.V().as('n').hasLabel('DoesNotExist'), __.constant(' cypher.null').as('n')).select('n', 'f').fold().project('a', 'b').by(__.unfold().select('n').choose(neq(' cypher.null'), __.choose(__.values('property'), __.values('property'), __.constant(' cypher.null'))).dedup().is(neq(' cypher.null')).fold()).by(__.unfold().select('f').choose(neq(' cypher.null'), __.choose(__.values('property'), __.values('property'), __.constant(' cypher.null'))).dedup().is(neq(' cypher.null')).fold())

Then the result should be: 0.000
a b
[] [42, 43, 44]
And no side effects 0.000

16:11:29.989 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n) RETURN id(n)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.989 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) RETURN id(n) 16:11:29.993 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().project('id(n)').by(__.id()) 16:11:29.994 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH ()-[r]->() RETURN id(r)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:29.995 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH ()-[r]->() RETURN id(r) 16:11:29.999 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.E().project('id(r)').by(__.id()) 16:11:30.002 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:30.003 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label 16:11:30.007 [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:11:30.009 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:30.011 [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:34669, hostUri=ws://localhost:34669/gremlin}} -labels: 0 +labels: 0 +nodes: 0 -nodes: 0 -properties: 0 +properties: 0 -relationships: 0 +relationships: 0

0.000
Given an empty graph 0.000

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

And having executed: 0.000
CREATE (s:Single), (a:A {prop: 42}),
       (b:B {prop: 46}), (c:C)
CREATE (s)-[:REL]->(a),
       (s)-[:REL]->(b),
       (a)-[:REL]->(c),
       (b)-[:LOOP]->(b)

16:11:30.025 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:30.026 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b) 16:11:30.033 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.addV('Single').as('s').addV('A').as('a').property(single, 'prop', 42).addV('B').as('b').property(single, 'prop', 46).addV('C').as('c').addE('REL').from('s').to('a').addE('REL').from('s').to('b').addE('REL').from('a').to('c').addE('LOOP').from('b').to('b').barrier().limit(0)

0.000
And having executed: 0.000
CREATE
  (:X {val: 1})-[:E1]->(:Y {val: 2})-[:E2]->(:Z {val: 3}),
  (:X {val: 4})-[:E1]->(:Y {val: 5}),
  (:X {val: 6})

16:11:30.043 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (:X {val: 1})-[:E1]->(:Y {val: 2})-[:E2]->(:Z {val: 3}), (:X {val: 4})-[:E1]->(:Y {val: 5}), (:X {val: 6})}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:30.044 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (:X {val: 1})-[:E1]->(:Y {val: 2})-[:E2]->(:Z {val: 3}), (:X {val: 4})-[:E1]->(:Y {val: 5}), (:X {val: 6}) 16:11:30.051 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.addV('X').as(' UNNAMED10').property(single, 'val', 1).addV('Y').as(' UNNAMED31').property(single, 'val', 2).addE('E1').from(' UNNAMED10').to(' UNNAMED31').addV('Z').as(' UNNAMED52').property(single, 'val', 3).addE('E2').from(' UNNAMED31').to(' UNNAMED52').addV('X').as(' UNNAMED69').property(single, 'val', 4).addV('Y').as(' UNNAMED90').property(single, 'val', 5).addE('E1').from(' UNNAMED69').to(' UNNAMED90').addV('X').property(single, 'val', 6).barrier().limit(0)

When executing query: 0.000
MATCH (x:X)
OPTIONAL MATCH (x)-[:E1]->(y:Y)
WHERE x.val < y.val
RETURN x, y

16:11:30.094 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (x:X) OPTIONAL MATCH (x)-[:E1]->(y:Y) WHERE x.val < y.val RETURN x, y}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:30.094 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (x:X) OPTIONAL MATCH (x)-[:E1]->(y:Y) WHERE x.val < y.val RETURN x, y 16:11:30.110 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().as('x').hasLabel('X').choose(__.select('x').outE('E1').inV().as('y').hasLabel('Y').where(__.select('y').values('val').as(' GENERATED4').select('x').values('val').where(lt(' GENERATED4'))), __.select('x').outE('E1').inV().as('y').hasLabel('Y').where(__.select('y').values('val').as(' GENERATED4').select('x').values('val').where(lt(' GENERATED4'))), __.constant(' cypher.null').as('y')).select('x', 'y').project('x', 'y').by(__.select('x').choose(neq(' cypher.null'), __.valueMap().with('~tinkerpop.valueMap.tokens'))).by(__.select('y').choose(neq(' cypher.null'), __.valueMap().with('~tinkerpop.valueMap.tokens')))

Then the result should be: 0.000
x y
(:X {val: 1}) (:Y {val: 2})
(:X {val: 4}) (:Y {val: 5})
(:X {val: 6}) null
And no side effects 0.000

16:11:30.121 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n) RETURN id(n)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:30.121 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) RETURN id(n) 16:11:30.126 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().project('id(n)').by(__.id()) 16:11:30.128 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH ()-[r]->() RETURN id(r)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:30.128 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH ()-[r]->() RETURN id(r) 16:11:30.137 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.E().project('id(r)').by(__.id()) 16:11:30.139 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:30.140 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label 16:11:30.145 [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:11:30.146 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:30.148 [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:34669, hostUri=ws://localhost:34669/gremlin}} -labels: 0 +labels: 0 +nodes: 0 -nodes: 0 -properties: 0 +properties: 0 -relationships: 0 +relationships: 0

0.000
Given an empty graph 0.000

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

And having executed: 0.000
CREATE (s:Single), (a:A {prop: 42}),
       (b:B {prop: 46}), (c:C)
CREATE (s)-[:REL]->(a),
       (s)-[:REL]->(b),
       (a)-[:REL]->(c),
       (b)-[:LOOP]->(b)

16:11:30.163 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:30.163 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b) 16:11:30.173 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.addV('Single').as('s').addV('A').as('a').property(single, 'prop', 42).addV('B').as('b').property(single, 'prop', 46).addV('C').as('c').addE('REL').from('s').to('a').addE('REL').from('s').to('b').addE('REL').from('a').to('c').addE('LOOP').from('b').to('b').barrier().limit(0)

0.000
And having executed: 0.000
CREATE
  (:X {val: 1})-[:E1]->(:Y {val: 2})-[:E2]->(:Z {val: 3}),
  (:X {val: 4})-[:E1]->(:Y {val: 5}),
  (:X {val: 6})

16:11:30.179 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (:X {val: 1})-[:E1]->(:Y {val: 2})-[:E2]->(:Z {val: 3}), (:X {val: 4})-[:E1]->(:Y {val: 5}), (:X {val: 6})}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:30.179 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (:X {val: 1})-[:E1]->(:Y {val: 2})-[:E2]->(:Z {val: 3}), (:X {val: 4})-[:E1]->(:Y {val: 5}), (:X {val: 6}) 16:11:30.187 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.addV('X').as(' UNNAMED10').property(single, 'val', 1).addV('Y').as(' UNNAMED31').property(single, 'val', 2).addE('E1').from(' UNNAMED10').to(' UNNAMED31').addV('Z').as(' UNNAMED52').property(single, 'val', 3).addE('E2').from(' UNNAMED31').to(' UNNAMED52').addV('X').as(' UNNAMED69').property(single, 'val', 4).addV('Y').as(' UNNAMED90').property(single, 'val', 5).addE('E1').from(' UNNAMED69').to(' UNNAMED90').addV('X').property(single, 'val', 6).barrier().limit(0)

When executing query: 0.000
MATCH (x:X)
OPTIONAL MATCH (x)-[:E1]->(y:Y)-[:E2]->(z:Z)
WHERE x.val < z.val
RETURN x, y, z

16:11:30.230 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (x:X) OPTIONAL MATCH (x)-[:E1]->(y:Y)-[:E2]->(z:Z) WHERE x.val < z.val RETURN x, y, z}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:30.232 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (x:X) OPTIONAL MATCH (x)-[:E1]->(y:Y)-[:E2]->(z:Z) WHERE x.val < z.val RETURN x, y, z 16:11:30.246 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().as('x').hasLabel('X').choose(__.select('x').outE('E1').inV().as('y').hasLabel('Y').outE('E2').inV().as('z').hasLabel('Z').where(__.select('z').values('val').as(' GENERATED5').select('x').values('val').where(lt(' GENERATED5'))), __.select('x').outE('E1').inV().as('y').hasLabel('Y').outE('E2').inV().as('z').hasLabel('Z').where(__.select('z').values('val').as(' GENERATED5').select('x').values('val').where(lt(' GENERATED5'))), __.constant(' cypher.null').as('y').as('z')).select('x', 'y', 'z').project('x', 'y', 'z').by(__.select('x').choose(neq(' cypher.null'), __.valueMap().with('~tinkerpop.valueMap.tokens'))).by(__.select('y').choose(neq(' cypher.null'), __.valueMap().with('~tinkerpop.valueMap.tokens'))).by(__.select('z').choose(neq(' cypher.null'), __.valueMap().with('~tinkerpop.valueMap.tokens')))

Then the result should be: 0.000
x y z
(:X {val: 1}) (:Y {val: 2}) (:Z {val: 3})
(:X {val: 4}) null null
(:X {val: 6}) null null
And no side effects 0.000

16:11:30.255 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n) RETURN id(n)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:30.255 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) RETURN id(n) 16:11:30.261 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().project('id(n)').by(__.id()) 16:11:30.262 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH ()-[r]->() RETURN id(r)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:30.263 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH ()-[r]->() RETURN id(r) 16:11:30.270 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.E().project('id(r)').by(__.id()) 16:11:30.272 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:30.273 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label 16:11:30.279 [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:11:30.281 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:30.285 [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:34669, hostUri=ws://localhost:34669/gremlin}} -labels: 0 +labels: 0 +nodes: 0 -nodes: 0 -properties: 0 +properties: 0 -relationships: 0 +relationships: 0

0.000
Given an empty graph 0.000

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

And having executed: 0.000
CREATE (s:Single), (a:A {prop: 42}),
       (b:B {prop: 46}), (c:C)
CREATE (s)-[:REL]->(a),
       (s)-[:REL]->(b),
       (a)-[:REL]->(c),
       (b)-[:LOOP]->(b)

16:11:30.298 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:30.299 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (s:Single), (a:A {prop: 42}), (b:B {prop: 46}), (c:C) CREATE (s)-[:REL]->(a), (s)-[:REL]->(b), (a)-[:REL]->(c), (b)-[:LOOP]->(b) 16:11:30.308 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.addV('Single').as('s').addV('A').as('a').property(single, 'prop', 42).addV('B').as('b').property(single, 'prop', 46).addV('C').as('c').addE('REL').from('s').to('a').addE('REL').from('s').to('b').addE('REL').from('a').to('c').addE('LOOP').from('b').to('b').barrier().limit(0)

0.000
And having executed: 0.000
CREATE
  (:X {val: 1})-[:E1]->(:Y {val: 2})-[:E2]->(:Z {val: 3}),
  (:X {val: 4})-[:E1]->(:Y {val: 5}),
  (:X {val: 6})

16:11:30.316 [Test worker] DEBUG o.a.t.g.driver.Client - CREATE (:X {val: 1})-[:E1]->(:Y {val: 2})-[:E2]->(:Z {val: 3}), (:X {val: 4})-[:E1]->(:Y {val: 5}), (:X {val: 6})}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:30.316 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: CREATE (:X {val: 1})-[:E1]->(:Y {val: 2})-[:E2]->(:Z {val: 3}), (:X {val: 4})-[:E1]->(:Y {val: 5}), (:X {val: 6}) 16:11:30.324 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.addV('X').as(' UNNAMED10').property(single, 'val', 1).addV('Y').as(' UNNAMED31').property(single, 'val', 2).addE('E1').from(' UNNAMED10').to(' UNNAMED31').addV('Z').as(' UNNAMED52').property(single, 'val', 3).addE('E2').from(' UNNAMED31').to(' UNNAMED52').addV('X').as(' UNNAMED69').property(single, 'val', 4).addV('Y').as(' UNNAMED90').property(single, 'val', 5).addE('E1').from(' UNNAMED69').to(' UNNAMED90').addV('X').property(single, 'val', 6).barrier().limit(0)

When executing query: 0.000
MATCH (x:X)
OPTIONAL MATCH (x)-[:E1]->(y:Y)
OPTIONAL MATCH (y)-[:E2]->(z:Z)
WHERE x.val < z.val
RETURN x, y, z

16:11:30.364 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (x:X) OPTIONAL MATCH (x)-[:E1]->(y:Y) OPTIONAL MATCH (y)-[:E2]->(z:Z) WHERE x.val < z.val RETURN x, y, z}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:30.365 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (x:X) OPTIONAL MATCH (x)-[:E1]->(y:Y) OPTIONAL MATCH (y)-[:E2]->(z:Z) WHERE x.val < z.val RETURN x, y, z 16:11:30.382 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().as('x').hasLabel('X').choose(__.select('x').outE('E1').inV().as('y').hasLabel('Y'), __.select('x').outE('E1').inV().as('y').hasLabel('Y'), __.constant(' cypher.null').as('y')).choose(__.select('y').is(neq(' cypher.null')).outE('E2').inV().as('z').hasLabel('Z').where(__.select('z').values('val').as(' GENERATED7').select('x').values('val').where(lt(' GENERATED7'))), __.select('y').is(neq(' cypher.null')).outE('E2').inV().as('z').hasLabel('Z').where(__.select('z').values('val').as(' GENERATED7').select('x').values('val').where(lt(' GENERATED7'))), __.constant(' cypher.null').as('z')).select('x', 'y', 'z').project('x', 'y', 'z').by(__.select('x').choose(neq(' cypher.null'), __.valueMap().with('~tinkerpop.valueMap.tokens'))).by(__.select('y').choose(neq(' cypher.null'), __.valueMap().with('~tinkerpop.valueMap.tokens'))).by(__.select('z').choose(neq(' cypher.null'), __.valueMap().with('~tinkerpop.valueMap.tokens')))

Then the result should be: 0.000
x y z
(:X {val: 1}) (:Y {val: 2}) (:Z {val: 3})
(:X {val: 4}) (:Y {val: 5}) null
(:X {val: 6}) null null
And no side effects 0.000

16:11:30.391 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH (n) RETURN id(n)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:30.392 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) RETURN id(n) 16:11:30.396 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.V().project('id(n)').by(__.id()) 16:11:30.397 [Test worker] DEBUG o.a.t.g.driver.Client - MATCH ()-[r]->() RETURN id(r)}} to - Connection{host=Host{address=localhost/127.0.0.1:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:30.397 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH ()-[r]->() RETURN id(r) 16:11:30.404 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Gremlin: g.E().project('id(r)').by(__.id()) 16:11:30.406 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:30.407 [gremlin-server-worker-1] INFO o.o.g.s.o.c.CypherOpProcessor - Cypher: MATCH (n) UNWIND labels(n) AS label RETURN DISTINCT label 16:11:30.413 [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:11:30.415 [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:34669, hostUri=ws://localhost:34669/gremlin}} 16:11:30.419 [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:34669, hostUri=ws://localhost:34669/gremlin}} -labels: 0 +labels: 0 +nodes: 0 -nodes: 0 -properties: 0 +properties: 0 -relationships: 0 +relationships: 0