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

Feature Report

Steps Scenarios Features
Feature Passed Failed Skipped Pending Undefined Total Passed Failed Total Duration Status
TriadicSelection 76 0 0 0 0 76 19 0 19 1.019 Passed
Feature TriadicSelection
0.045
Given the binary-tree-1 graph 0.025

12:03:13.080 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: CREATE (a:A {name: 'a'}), (b1:X {name: 'b1'}), (b2:X {name: 'b2'}), (b3:X {name: 'b3'}), (b4:X {name: 'b4'}), (c11:X {name: 'c11'}), (c12:X {name: 'c12'}), (c21:X {name: 'c21'}), (c22:X {name: 'c22'}), (c31:X {name: 'c31'}), (c32:X {name: 'c32'}), (c41:X {name: 'c41'}), (c42:X {name: 'c42'}) CREATE (a)-[:KNOWS]->(b1), (a)-[:KNOWS]->(b2), (a)-[:FOLLOWS]->(b3), (a)-[:FOLLOWS]->(b4) CREATE (b1)-[:FRIEND]->(c11), (b1)-[:FRIEND]->(c12), (b2)-[:FRIEND]->(c21), (b2)-[:FRIEND]->(c22), (b3)-[:FRIEND]->(c31), (b3)-[:FRIEND]->(c32), (b4)-[:FRIEND]->(c41), (b4)-[:FRIEND]->(c42) CREATE (b1)-[:FRIEND]->(b2), (b2)-[:FRIEND]->(b3), (b3)-[:FRIEND]->(b4), (b4)-[:FRIEND]->(b1); 12:03:13.093 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.addV('A').as('a').property('name', 'a').addV('X').as('b1').property('name', 'b1').addV('X').as('b2').property('name', 'b2').addV('X').as('b3').property('name', 'b3').addV('X').as('b4').property('name', 'b4').addV('X').as('c11').property('name', 'c11').addV('X').as('c12').property('name', 'c12').addV('X').as('c21').property('name', 'c21').addV('X').as('c22').property('name', 'c22').addV('X').as('c31').property('name', 'c31').addV('X').as('c32').property('name', 'c32').addV('X').as('c41').property('name', 'c41').addV('X').as('c42').property('name', 'c42').addE('KNOWS').from('a').to('b1').addE('KNOWS').from('a').to('b2').addE('FOLLOWS').from('a').to('b3').addE('FOLLOWS').from('a').to('b4').addE('FRIEND').from('b1').to('c11').addE('FRIEND').from('b1').to('c12').addE('FRIEND').from('b2').to('c21').addE('FRIEND').from('b2').to('c22').addE('FRIEND').from('b3').to('c31').addE('FRIEND').from('b3').to('c32').addE('FRIEND').from('b4').to('c41').addE('FRIEND').from('b4').to('c42').addE('FRIEND').from('b1').to('b2').addE('FRIEND').from('b2').to('b3').addE('FRIEND').from('b3').to('b4').addE('FRIEND').from('b4').to('b1').barrier().limit(0)

When executing query: 0.005
MATCH (a:A)-[:KNOWS]->(b)-->(c)
RETURN c.name

12:03:13.119 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH (a:A)-[:KNOWS]->(b)-->(c) RETURN c.name 12:03:13.123 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().hasLabel('A').outE('KNOWS').as(' UNNAMED12').inV().as(' cypher.path.start.GENERATED2').outE().as(' UNNAMED26').inV().as('c').where(__.select(' UNNAMED12').where(neq(' UNNAMED26'))).select('c').project('c.name').by(__.choose(neq(' cypher.null'), __.coalesce(__.values('name'), __.constant(' cypher.null')), __.constant(' cypher.null')))

Then the result should be: 0.000
c.name
'b2'
'b3'
'c11'
'c12'
'c21'
'c22'
And no side effects 0.014

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

0.049
Given the binary-tree-1 graph 0.024

12:03:13.140 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: CREATE (a:A {name: 'a'}), (b1:X {name: 'b1'}), (b2:X {name: 'b2'}), (b3:X {name: 'b3'}), (b4:X {name: 'b4'}), (c11:X {name: 'c11'}), (c12:X {name: 'c12'}), (c21:X {name: 'c21'}), (c22:X {name: 'c22'}), (c31:X {name: 'c31'}), (c32:X {name: 'c32'}), (c41:X {name: 'c41'}), (c42:X {name: 'c42'}) CREATE (a)-[:KNOWS]->(b1), (a)-[:KNOWS]->(b2), (a)-[:FOLLOWS]->(b3), (a)-[:FOLLOWS]->(b4) CREATE (b1)-[:FRIEND]->(c11), (b1)-[:FRIEND]->(c12), (b2)-[:FRIEND]->(c21), (b2)-[:FRIEND]->(c22), (b3)-[:FRIEND]->(c31), (b3)-[:FRIEND]->(c32), (b4)-[:FRIEND]->(c41), (b4)-[:FRIEND]->(c42) CREATE (b1)-[:FRIEND]->(b2), (b2)-[:FRIEND]->(b3), (b3)-[:FRIEND]->(b4), (b4)-[:FRIEND]->(b1); 12:03:13.152 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.addV('A').as('a').property('name', 'a').addV('X').as('b1').property('name', 'b1').addV('X').as('b2').property('name', 'b2').addV('X').as('b3').property('name', 'b3').addV('X').as('b4').property('name', 'b4').addV('X').as('c11').property('name', 'c11').addV('X').as('c12').property('name', 'c12').addV('X').as('c21').property('name', 'c21').addV('X').as('c22').property('name', 'c22').addV('X').as('c31').property('name', 'c31').addV('X').as('c32').property('name', 'c32').addV('X').as('c41').property('name', 'c41').addV('X').as('c42').property('name', 'c42').addE('KNOWS').from('a').to('b1').addE('KNOWS').from('a').to('b2').addE('FOLLOWS').from('a').to('b3').addE('FOLLOWS').from('a').to('b4').addE('FRIEND').from('b1').to('c11').addE('FRIEND').from('b1').to('c12').addE('FRIEND').from('b2').to('c21').addE('FRIEND').from('b2').to('c22').addE('FRIEND').from('b3').to('c31').addE('FRIEND').from('b3').to('c32').addE('FRIEND').from('b4').to('c41').addE('FRIEND').from('b4').to('c42').addE('FRIEND').from('b1').to('b2').addE('FRIEND').from('b2').to('b3').addE('FRIEND').from('b3').to('b4').addE('FRIEND').from('b4').to('b1').barrier().limit(0)

When executing query: 0.010
MATCH (a:A)-[:KNOWS]->(b)-->(c)
OPTIONAL MATCH (a)-[r:KNOWS]->(c)
WITH c WHERE r IS NULL
RETURN c.name

12:03:13.179 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH (a:A)-[:KNOWS]->(b)-->(c) OPTIONAL MATCH (a)-[r:KNOWS]->(c) WITH c WHERE r IS NULL RETURN c.name 12:03:13.186 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().as('a').hasLabel('A').outE('KNOWS').as(' UNNAMED12').inV().as(' cypher.path.start.GENERATED2').outE().as(' UNNAMED26').inV().as('c').where(__.select(' UNNAMED12').where(neq(' UNNAMED26'))).coalesce(__.select('a').outE('KNOWS').as('r').inV().as(' GENERATED5').where(__.select(' GENERATED5').where(eq('c'))).select('a', 'r', 'c'), __.constant(' cypher.null').as(' GENERATED6').as('r').as(' GENERATED7').select(' GENERATED6', 'r', ' GENERATED7')).select('r').as('r').select('r', 'c').project('r', 'c').by(__.select('r')).by(__.select('c')).as(' GENERATED11').select('r').as('r').select(' GENERATED11').select('c').as('c').where(__.select('r').is(eq(' cypher.null'))).select('c', 'r').project('c', ' FRESHID81').by(__.select('c')).by(__.select('r').choose(__.is(eq(' cypher.null')), __.constant(true), __.constant(false))).as(' GENERATED14').select('c').as('c').select(' GENERATED14').select(' FRESHID81').as(' FRESHID81').select('c', ' FRESHID81').project('c', ' FRESHID81').by(__.select('c')).by(__.select(' FRESHID81')).as(' GENERATED16').select('c').as('c').select(' GENERATED16').select(' FRESHID81').as(' FRESHID81').select('c').as('c').project('c.name').by(__.choose(neq(' cypher.null'), __.coalesce(__.values('name'), __.constant(' cypher.null')), __.constant(' cypher.null')))

Then the result should be: 0.000
c.name
'b3'
'c11'
'c12'
'c21'
'c22'
And no side effects 0.014

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

0.051
Given the binary-tree-1 graph 0.026

12:03:13.204 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: CREATE (a:A {name: 'a'}), (b1:X {name: 'b1'}), (b2:X {name: 'b2'}), (b3:X {name: 'b3'}), (b4:X {name: 'b4'}), (c11:X {name: 'c11'}), (c12:X {name: 'c12'}), (c21:X {name: 'c21'}), (c22:X {name: 'c22'}), (c31:X {name: 'c31'}), (c32:X {name: 'c32'}), (c41:X {name: 'c41'}), (c42:X {name: 'c42'}) CREATE (a)-[:KNOWS]->(b1), (a)-[:KNOWS]->(b2), (a)-[:FOLLOWS]->(b3), (a)-[:FOLLOWS]->(b4) CREATE (b1)-[:FRIEND]->(c11), (b1)-[:FRIEND]->(c12), (b2)-[:FRIEND]->(c21), (b2)-[:FRIEND]->(c22), (b3)-[:FRIEND]->(c31), (b3)-[:FRIEND]->(c32), (b4)-[:FRIEND]->(c41), (b4)-[:FRIEND]->(c42) CREATE (b1)-[:FRIEND]->(b2), (b2)-[:FRIEND]->(b3), (b3)-[:FRIEND]->(b4), (b4)-[:FRIEND]->(b1); 12:03:13.217 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.addV('A').as('a').property('name', 'a').addV('X').as('b1').property('name', 'b1').addV('X').as('b2').property('name', 'b2').addV('X').as('b3').property('name', 'b3').addV('X').as('b4').property('name', 'b4').addV('X').as('c11').property('name', 'c11').addV('X').as('c12').property('name', 'c12').addV('X').as('c21').property('name', 'c21').addV('X').as('c22').property('name', 'c22').addV('X').as('c31').property('name', 'c31').addV('X').as('c32').property('name', 'c32').addV('X').as('c41').property('name', 'c41').addV('X').as('c42').property('name', 'c42').addE('KNOWS').from('a').to('b1').addE('KNOWS').from('a').to('b2').addE('FOLLOWS').from('a').to('b3').addE('FOLLOWS').from('a').to('b4').addE('FRIEND').from('b1').to('c11').addE('FRIEND').from('b1').to('c12').addE('FRIEND').from('b2').to('c21').addE('FRIEND').from('b2').to('c22').addE('FRIEND').from('b3').to('c31').addE('FRIEND').from('b3').to('c32').addE('FRIEND').from('b4').to('c41').addE('FRIEND').from('b4').to('c42').addE('FRIEND').from('b1').to('b2').addE('FRIEND').from('b2').to('b3').addE('FRIEND').from('b3').to('b4').addE('FRIEND').from('b4').to('b1').barrier().limit(0)

When executing query: 0.010
MATCH (a:A)-[:KNOWS]->(b)-->(c)
OPTIONAL MATCH (a)-[r:FOLLOWS]->(c)
WITH c WHERE r IS NULL
RETURN c.name

12:03:13.244 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH (a:A)-[:KNOWS]->(b)-->(c) OPTIONAL MATCH (a)-[r:FOLLOWS]->(c) WITH c WHERE r IS NULL RETURN c.name 12:03:13.252 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().as('a').hasLabel('A').outE('KNOWS').as(' UNNAMED12').inV().as(' cypher.path.start.GENERATED2').outE().as(' UNNAMED26').inV().as('c').where(__.select(' UNNAMED12').where(neq(' UNNAMED26'))).coalesce(__.select('a').outE('FOLLOWS').as('r').inV().as(' GENERATED5').where(__.select(' GENERATED5').where(eq('c'))).select('a', 'r', 'c'), __.constant(' cypher.null').as(' GENERATED6').as('r').as(' GENERATED7').select(' GENERATED6', 'r', ' GENERATED7')).select('r').as('r').select('r', 'c').project('r', 'c').by(__.select('r')).by(__.select('c')).as(' GENERATED11').select('r').as('r').select(' GENERATED11').select('c').as('c').where(__.select('r').is(eq(' cypher.null'))).select('c', 'r').project('c', ' FRESHID83').by(__.select('c')).by(__.select('r').choose(__.is(eq(' cypher.null')), __.constant(true), __.constant(false))).as(' GENERATED14').select('c').as('c').select(' GENERATED14').select(' FRESHID83').as(' FRESHID83').select('c', ' FRESHID83').project('c', ' FRESHID83').by(__.select('c')).by(__.select(' FRESHID83')).as(' GENERATED16').select('c').as('c').select(' GENERATED16').select(' FRESHID83').as(' FRESHID83').select('c').as('c').project('c.name').by(__.choose(neq(' cypher.null'), __.coalesce(__.values('name'), __.constant(' cypher.null')), __.constant(' cypher.null')))

Then the result should be: 0.000
c.name
'b2'
'c11'
'c12'
'c21'
'c22'
And no side effects 0.014

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

0.058
Given the binary-tree-1 graph 0.025

12:03:13.271 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: CREATE (a:A {name: 'a'}), (b1:X {name: 'b1'}), (b2:X {name: 'b2'}), (b3:X {name: 'b3'}), (b4:X {name: 'b4'}), (c11:X {name: 'c11'}), (c12:X {name: 'c12'}), (c21:X {name: 'c21'}), (c22:X {name: 'c22'}), (c31:X {name: 'c31'}), (c32:X {name: 'c32'}), (c41:X {name: 'c41'}), (c42:X {name: 'c42'}) CREATE (a)-[:KNOWS]->(b1), (a)-[:KNOWS]->(b2), (a)-[:FOLLOWS]->(b3), (a)-[:FOLLOWS]->(b4) CREATE (b1)-[:FRIEND]->(c11), (b1)-[:FRIEND]->(c12), (b2)-[:FRIEND]->(c21), (b2)-[:FRIEND]->(c22), (b3)-[:FRIEND]->(c31), (b3)-[:FRIEND]->(c32), (b4)-[:FRIEND]->(c41), (b4)-[:FRIEND]->(c42) CREATE (b1)-[:FRIEND]->(b2), (b2)-[:FRIEND]->(b3), (b3)-[:FRIEND]->(b4), (b4)-[:FRIEND]->(b1); 12:03:13.283 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.addV('A').as('a').property('name', 'a').addV('X').as('b1').property('name', 'b1').addV('X').as('b2').property('name', 'b2').addV('X').as('b3').property('name', 'b3').addV('X').as('b4').property('name', 'b4').addV('X').as('c11').property('name', 'c11').addV('X').as('c12').property('name', 'c12').addV('X').as('c21').property('name', 'c21').addV('X').as('c22').property('name', 'c22').addV('X').as('c31').property('name', 'c31').addV('X').as('c32').property('name', 'c32').addV('X').as('c41').property('name', 'c41').addV('X').as('c42').property('name', 'c42').addE('KNOWS').from('a').to('b1').addE('KNOWS').from('a').to('b2').addE('FOLLOWS').from('a').to('b3').addE('FOLLOWS').from('a').to('b4').addE('FRIEND').from('b1').to('c11').addE('FRIEND').from('b1').to('c12').addE('FRIEND').from('b2').to('c21').addE('FRIEND').from('b2').to('c22').addE('FRIEND').from('b3').to('c31').addE('FRIEND').from('b3').to('c32').addE('FRIEND').from('b4').to('c41').addE('FRIEND').from('b4').to('c42').addE('FRIEND').from('b1').to('b2').addE('FRIEND').from('b2').to('b3').addE('FRIEND').from('b3').to('b4').addE('FRIEND').from('b4').to('b1').barrier().limit(0)

When executing query: 0.014
MATCH (a:A)-[:KNOWS]->(b)-->(c)
OPTIONAL MATCH (a)-[r]->(c)
WITH c WHERE r IS NULL
RETURN c.name

12:03:13.311 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH (a:A)-[:KNOWS]->(b)-->(c) OPTIONAL MATCH (a)-[r]->(c) WITH c WHERE r IS NULL RETURN c.name 12:03:13.320 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().as('a').hasLabel('A').outE('KNOWS').as(' UNNAMED12').inV().as(' cypher.path.start.GENERATED2').outE().as(' UNNAMED26').inV().as('c').where(__.select(' UNNAMED12').where(neq(' UNNAMED26'))).coalesce(__.select('a').outE().as('r').inV().as(' GENERATED5').where(__.select(' GENERATED5').where(eq('c'))).select('a', 'r', 'c'), __.constant(' cypher.null').as(' GENERATED6').as('r').as(' GENERATED7').select(' GENERATED6', 'r', ' GENERATED7')).select('r').as('r').select('r', 'c').project('r', 'c').by(__.select('r')).by(__.select('c')).as(' GENERATED11').select('r').as('r').select(' GENERATED11').select('c').as('c').where(__.select('r').is(eq(' cypher.null'))).select('c', 'r').project('c', ' FRESHID75').by(__.select('c')).by(__.select('r').choose(__.is(eq(' cypher.null')), __.constant(true), __.constant(false))).as(' GENERATED14').select('c').as('c').select(' GENERATED14').select(' FRESHID75').as(' FRESHID75').select('c', ' FRESHID75').project('c', ' FRESHID75').by(__.select('c')).by(__.select(' FRESHID75')).as(' GENERATED16').select('c').as('c').select(' GENERATED16').select(' FRESHID75').as(' FRESHID75').select('c').as('c').project('c.name').by(__.choose(neq(' cypher.null'), __.coalesce(__.values('name'), __.constant(' cypher.null')), __.constant(' cypher.null')))

Then the result should be: 0.000
c.name
'c11'
'c12'
'c21'
'c22'
And no side effects 0.017

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

0.058
Given the binary-tree-1 graph 0.031

12:03:13.344 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: CREATE (a:A {name: 'a'}), (b1:X {name: 'b1'}), (b2:X {name: 'b2'}), (b3:X {name: 'b3'}), (b4:X {name: 'b4'}), (c11:X {name: 'c11'}), (c12:X {name: 'c12'}), (c21:X {name: 'c21'}), (c22:X {name: 'c22'}), (c31:X {name: 'c31'}), (c32:X {name: 'c32'}), (c41:X {name: 'c41'}), (c42:X {name: 'c42'}) CREATE (a)-[:KNOWS]->(b1), (a)-[:KNOWS]->(b2), (a)-[:FOLLOWS]->(b3), (a)-[:FOLLOWS]->(b4) CREATE (b1)-[:FRIEND]->(c11), (b1)-[:FRIEND]->(c12), (b2)-[:FRIEND]->(c21), (b2)-[:FRIEND]->(c22), (b3)-[:FRIEND]->(c31), (b3)-[:FRIEND]->(c32), (b4)-[:FRIEND]->(c41), (b4)-[:FRIEND]->(c42) CREATE (b1)-[:FRIEND]->(b2), (b2)-[:FRIEND]->(b3), (b3)-[:FRIEND]->(b4), (b4)-[:FRIEND]->(b1); 12:03:13.356 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.addV('A').as('a').property('name', 'a').addV('X').as('b1').property('name', 'b1').addV('X').as('b2').property('name', 'b2').addV('X').as('b3').property('name', 'b3').addV('X').as('b4').property('name', 'b4').addV('X').as('c11').property('name', 'c11').addV('X').as('c12').property('name', 'c12').addV('X').as('c21').property('name', 'c21').addV('X').as('c22').property('name', 'c22').addV('X').as('c31').property('name', 'c31').addV('X').as('c32').property('name', 'c32').addV('X').as('c41').property('name', 'c41').addV('X').as('c42').property('name', 'c42').addE('KNOWS').from('a').to('b1').addE('KNOWS').from('a').to('b2').addE('FOLLOWS').from('a').to('b3').addE('FOLLOWS').from('a').to('b4').addE('FRIEND').from('b1').to('c11').addE('FRIEND').from('b1').to('c12').addE('FRIEND').from('b2').to('c21').addE('FRIEND').from('b2').to('c22').addE('FRIEND').from('b3').to('c31').addE('FRIEND').from('b3').to('c32').addE('FRIEND').from('b4').to('c41').addE('FRIEND').from('b4').to('c42').addE('FRIEND').from('b1').to('b2').addE('FRIEND').from('b2').to('b3').addE('FRIEND').from('b3').to('b4').addE('FRIEND').from('b4').to('b1').barrier().limit(0)

When executing query: 0.011
MATCH (a:A)-->(b)-->(c)
OPTIONAL MATCH (a)-[r:KNOWS]->(c)
WITH c WHERE r IS NULL
RETURN c.name

12:03:13.396 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH (a:A)-->(b)-->(c) OPTIONAL MATCH (a)-[r:KNOWS]->(c) WITH c WHERE r IS NULL RETURN c.name 12:03:13.404 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().as('a').hasLabel('A').outE().as(' UNNAMED12').inV().as(' cypher.path.start.GENERATED2').outE().as(' UNNAMED18').inV().as('c').where(__.select(' UNNAMED12').where(neq(' UNNAMED18'))).coalesce(__.select('a').outE('KNOWS').as('r').inV().as(' GENERATED5').where(__.select(' GENERATED5').where(eq('c'))).select('a', 'r', 'c'), __.constant(' cypher.null').as(' GENERATED6').as('r').as(' GENERATED7').select(' GENERATED6', 'r', ' GENERATED7')).select('r').as('r').select('r', 'c').project('r', 'c').by(__.select('r')).by(__.select('c')).as(' GENERATED11').select('r').as('r').select(' GENERATED11').select('c').as('c').where(__.select('r').is(eq(' cypher.null'))).select('c', 'r').project('c', ' FRESHID73').by(__.select('c')).by(__.select('r').choose(__.is(eq(' cypher.null')), __.constant(true), __.constant(false))).as(' GENERATED14').select('c').as('c').select(' GENERATED14').select(' FRESHID73').as(' FRESHID73').select('c', ' FRESHID73').project('c', ' FRESHID73').by(__.select('c')).by(__.select(' FRESHID73')).as(' GENERATED16').select('c').as('c').select(' GENERATED16').select(' FRESHID73').as(' FRESHID73').select('c').as('c').project('c.name').by(__.choose(neq(' cypher.null'), __.coalesce(__.values('name'), __.constant(' cypher.null')), __.constant(' cypher.null')))

Then the result should be: 0.000
c.name
'b3'
'b4'
'c11'
'c12'
'c21'
'c22'
'c31'
'c32'
'c41'
'c42'
And no side effects 0.015

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

0.049
Given the binary-tree-1 graph 0.024

12:03:13.424 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: CREATE (a:A {name: 'a'}), (b1:X {name: 'b1'}), (b2:X {name: 'b2'}), (b3:X {name: 'b3'}), (b4:X {name: 'b4'}), (c11:X {name: 'c11'}), (c12:X {name: 'c12'}), (c21:X {name: 'c21'}), (c22:X {name: 'c22'}), (c31:X {name: 'c31'}), (c32:X {name: 'c32'}), (c41:X {name: 'c41'}), (c42:X {name: 'c42'}) CREATE (a)-[:KNOWS]->(b1), (a)-[:KNOWS]->(b2), (a)-[:FOLLOWS]->(b3), (a)-[:FOLLOWS]->(b4) CREATE (b1)-[:FRIEND]->(c11), (b1)-[:FRIEND]->(c12), (b2)-[:FRIEND]->(c21), (b2)-[:FRIEND]->(c22), (b3)-[:FRIEND]->(c31), (b3)-[:FRIEND]->(c32), (b4)-[:FRIEND]->(c41), (b4)-[:FRIEND]->(c42) CREATE (b1)-[:FRIEND]->(b2), (b2)-[:FRIEND]->(b3), (b3)-[:FRIEND]->(b4), (b4)-[:FRIEND]->(b1); 12:03:13.435 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.addV('A').as('a').property('name', 'a').addV('X').as('b1').property('name', 'b1').addV('X').as('b2').property('name', 'b2').addV('X').as('b3').property('name', 'b3').addV('X').as('b4').property('name', 'b4').addV('X').as('c11').property('name', 'c11').addV('X').as('c12').property('name', 'c12').addV('X').as('c21').property('name', 'c21').addV('X').as('c22').property('name', 'c22').addV('X').as('c31').property('name', 'c31').addV('X').as('c32').property('name', 'c32').addV('X').as('c41').property('name', 'c41').addV('X').as('c42').property('name', 'c42').addE('KNOWS').from('a').to('b1').addE('KNOWS').from('a').to('b2').addE('FOLLOWS').from('a').to('b3').addE('FOLLOWS').from('a').to('b4').addE('FRIEND').from('b1').to('c11').addE('FRIEND').from('b1').to('c12').addE('FRIEND').from('b2').to('c21').addE('FRIEND').from('b2').to('c22').addE('FRIEND').from('b3').to('c31').addE('FRIEND').from('b3').to('c32').addE('FRIEND').from('b4').to('c41').addE('FRIEND').from('b4').to('c42').addE('FRIEND').from('b1').to('b2').addE('FRIEND').from('b2').to('b3').addE('FRIEND').from('b3').to('b4').addE('FRIEND').from('b4').to('b1').barrier().limit(0)

When executing query: 0.010
MATCH (a:A)-[:KNOWS|FOLLOWS]->(b)-->(c)
OPTIONAL MATCH (a)-[r:KNOWS]->(c)
WITH c WHERE r IS NULL
RETURN c.name

12:03:13.462 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH (a:A)-[:KNOWS|FOLLOWS]->(b)-->(c) OPTIONAL MATCH (a)-[r:KNOWS]->(c) WITH c WHERE r IS NULL RETURN c.name 12:03:13.468 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().as('a').hasLabel('A').outE('KNOWS', 'FOLLOWS').as(' UNNAMED12').inV().as(' cypher.path.start.GENERATED2').outE().as(' UNNAMED34').inV().as('c').where(__.select(' UNNAMED12').where(neq(' UNNAMED34'))).coalesce(__.select('a').outE('KNOWS').as('r').inV().as(' GENERATED5').where(__.select(' GENERATED5').where(eq('c'))).select('a', 'r', 'c'), __.constant(' cypher.null').as(' GENERATED6').as('r').as(' GENERATED7').select(' GENERATED6', 'r', ' GENERATED7')).select('r').as('r').select('r', 'c').project('r', 'c').by(__.select('r')).by(__.select('c')).as(' GENERATED11').select('r').as('r').select(' GENERATED11').select('c').as('c').where(__.select('r').is(eq(' cypher.null'))).select('c', 'r').project('c', ' FRESHID89').by(__.select('c')).by(__.select('r').choose(__.is(eq(' cypher.null')), __.constant(true), __.constant(false))).as(' GENERATED14').select('c').as('c').select(' GENERATED14').select(' FRESHID89').as(' FRESHID89').select('c', ' FRESHID89').project('c', ' FRESHID89').by(__.select('c')).by(__.select(' FRESHID89')).as(' GENERATED16').select('c').as('c').select(' GENERATED16').select(' FRESHID89').as(' FRESHID89').select('c').as('c').project('c.name').by(__.choose(neq(' cypher.null'), __.coalesce(__.values('name'), __.constant(' cypher.null')), __.constant(' cypher.null')))

Then the result should be: 0.000
c.name
'b3'
'b4'
'c11'
'c12'
'c21'
'c22'
'c31'
'c32'
'c41'
'c42'
And no side effects 0.014

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

0.050
Given the binary-tree-2 graph 0.025

12:03:13.488 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: CREATE (a:A {name: 'a'}), (b1:X {name: 'b1'}), (b2:X {name: 'b2'}), (b3:X {name: 'b3'}), (b4:X {name: 'b4'}), (c11:X {name: 'c11'}), (c12:Y {name: 'c12'}), (c21:X {name: 'c21'}), (c22:Y {name: 'c22'}), (c31:X {name: 'c31'}), (c32:Y {name: 'c32'}), (c41:X {name: 'c41'}), (c42:Y {name: 'c42'}) CREATE (a)-[:KNOWS]->(b1), (a)-[:KNOWS]->(b2), (a)-[:FOLLOWS]->(b3), (a)-[:FOLLOWS]->(b4) CREATE (b1)-[:FRIEND]->(c11), (b1)-[:FRIEND]->(c12), (b2)-[:FRIEND]->(c21), (b2)-[:FRIEND]->(c22), (b3)-[:FRIEND]->(c31), (b3)-[:FRIEND]->(c32), (b4)-[:FRIEND]->(c41), (b4)-[:FRIEND]->(c42) CREATE (b1)-[:FRIEND]->(b2), (b2)-[:FRIEND]->(b3), (b3)-[:FRIEND]->(b4), (b4)-[:FRIEND]->(b1); 12:03:13.501 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.addV('A').as('a').property('name', 'a').addV('X').as('b1').property('name', 'b1').addV('X').as('b2').property('name', 'b2').addV('X').as('b3').property('name', 'b3').addV('X').as('b4').property('name', 'b4').addV('X').as('c11').property('name', 'c11').addV('Y').as('c12').property('name', 'c12').addV('X').as('c21').property('name', 'c21').addV('Y').as('c22').property('name', 'c22').addV('X').as('c31').property('name', 'c31').addV('Y').as('c32').property('name', 'c32').addV('X').as('c41').property('name', 'c41').addV('Y').as('c42').property('name', 'c42').addE('KNOWS').from('a').to('b1').addE('KNOWS').from('a').to('b2').addE('FOLLOWS').from('a').to('b3').addE('FOLLOWS').from('a').to('b4').addE('FRIEND').from('b1').to('c11').addE('FRIEND').from('b1').to('c12').addE('FRIEND').from('b2').to('c21').addE('FRIEND').from('b2').to('c22').addE('FRIEND').from('b3').to('c31').addE('FRIEND').from('b3').to('c32').addE('FRIEND').from('b4').to('c41').addE('FRIEND').from('b4').to('c42').addE('FRIEND').from('b1').to('b2').addE('FRIEND').from('b2').to('b3').addE('FRIEND').from('b3').to('b4').addE('FRIEND').from('b4').to('b1').barrier().limit(0)

When executing query: 0.010
MATCH (a:A)-[:KNOWS]->(b:X)-->(c:X)
OPTIONAL MATCH (a)-[r:KNOWS]->(c)
WITH c WHERE r IS NULL
RETURN c.name

12:03:13.529 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH (a:A)-[:KNOWS]->(b:X)-->(c:X) OPTIONAL MATCH (a)-[r:KNOWS]->(c) WITH c WHERE r IS NULL RETURN c.name 12:03:13.537 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().as('a').hasLabel('A').outE('KNOWS').as(' UNNAMED12').inV().hasLabel('X').outE().as(' UNNAMED28').inV().as('c').hasLabel('X').where(__.select(' UNNAMED12').where(neq(' UNNAMED28'))).coalesce(__.select('a').outE('KNOWS').as('r').inV().as(' GENERATED5').where(__.select(' GENERATED5').where(eq('c'))).select('a', 'r', 'c'), __.constant(' cypher.null').as(' GENERATED6').as('r').as(' GENERATED7').select(' GENERATED6', 'r', ' GENERATED7')).select('r').as('r').select('r', 'c').project('r', 'c').by(__.select('r')).by(__.select('c')).as(' GENERATED11').select('r').as('r').select(' GENERATED11').select('c').as('c').where(__.select('r').is(eq(' cypher.null'))).select('c', 'r').project('c', ' FRESHID85').by(__.select('c')).by(__.select('r').choose(__.is(eq(' cypher.null')), __.constant(true), __.constant(false))).as(' GENERATED14').select('c').as('c').select(' GENERATED14').select(' FRESHID85').as(' FRESHID85').select('c', ' FRESHID85').project('c', ' FRESHID85').by(__.select('c')).by(__.select(' FRESHID85')).as(' GENERATED16').select('c').as('c').select(' GENERATED16').select(' FRESHID85').as(' FRESHID85').select('c').as('c').project('c.name').by(__.choose(neq(' cypher.null'), __.coalesce(__.values('name'), __.constant(' cypher.null')), __.constant(' cypher.null')))

Then the result should be: 0.000
c.name
'b3'
'c11'
'c21'
And no side effects 0.013

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

0.057
Given the binary-tree-2 graph 0.032

12:03:13.555 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: CREATE (a:A {name: 'a'}), (b1:X {name: 'b1'}), (b2:X {name: 'b2'}), (b3:X {name: 'b3'}), (b4:X {name: 'b4'}), (c11:X {name: 'c11'}), (c12:Y {name: 'c12'}), (c21:X {name: 'c21'}), (c22:Y {name: 'c22'}), (c31:X {name: 'c31'}), (c32:Y {name: 'c32'}), (c41:X {name: 'c41'}), (c42:Y {name: 'c42'}) CREATE (a)-[:KNOWS]->(b1), (a)-[:KNOWS]->(b2), (a)-[:FOLLOWS]->(b3), (a)-[:FOLLOWS]->(b4) CREATE (b1)-[:FRIEND]->(c11), (b1)-[:FRIEND]->(c12), (b2)-[:FRIEND]->(c21), (b2)-[:FRIEND]->(c22), (b3)-[:FRIEND]->(c31), (b3)-[:FRIEND]->(c32), (b4)-[:FRIEND]->(c41), (b4)-[:FRIEND]->(c42) CREATE (b1)-[:FRIEND]->(b2), (b2)-[:FRIEND]->(b3), (b3)-[:FRIEND]->(b4), (b4)-[:FRIEND]->(b1); 12:03:13.568 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.addV('A').as('a').property('name', 'a').addV('X').as('b1').property('name', 'b1').addV('X').as('b2').property('name', 'b2').addV('X').as('b3').property('name', 'b3').addV('X').as('b4').property('name', 'b4').addV('X').as('c11').property('name', 'c11').addV('Y').as('c12').property('name', 'c12').addV('X').as('c21').property('name', 'c21').addV('Y').as('c22').property('name', 'c22').addV('X').as('c31').property('name', 'c31').addV('Y').as('c32').property('name', 'c32').addV('X').as('c41').property('name', 'c41').addV('Y').as('c42').property('name', 'c42').addE('KNOWS').from('a').to('b1').addE('KNOWS').from('a').to('b2').addE('FOLLOWS').from('a').to('b3').addE('FOLLOWS').from('a').to('b4').addE('FRIEND').from('b1').to('c11').addE('FRIEND').from('b1').to('c12').addE('FRIEND').from('b2').to('c21').addE('FRIEND').from('b2').to('c22').addE('FRIEND').from('b3').to('c31').addE('FRIEND').from('b3').to('c32').addE('FRIEND').from('b4').to('c41').addE('FRIEND').from('b4').to('c42').addE('FRIEND').from('b1').to('b2').addE('FRIEND').from('b2').to('b3').addE('FRIEND').from('b3').to('b4').addE('FRIEND').from('b4').to('b1').barrier().limit(0)

When executing query: 0.010
MATCH (a:A)-[:KNOWS]->(b:X)-->(c:Y)
OPTIONAL MATCH (a)-[r:KNOWS]->(c)
WITH c WHERE r IS NULL
RETURN c.name

12:03:13.602 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH (a:A)-[:KNOWS]->(b:X)-->(c:Y) OPTIONAL MATCH (a)-[r:KNOWS]->(c) WITH c WHERE r IS NULL RETURN c.name 12:03:13.609 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().as('a').hasLabel('A').outE('KNOWS').as(' UNNAMED12').inV().hasLabel('X').outE().as(' UNNAMED28').inV().as('c').hasLabel('Y').where(__.select(' UNNAMED12').where(neq(' UNNAMED28'))).coalesce(__.select('a').outE('KNOWS').as('r').inV().as(' GENERATED5').where(__.select(' GENERATED5').where(eq('c'))).select('a', 'r', 'c'), __.constant(' cypher.null').as(' GENERATED6').as('r').as(' GENERATED7').select(' GENERATED6', 'r', ' GENERATED7')).select('r').as('r').select('r', 'c').project('r', 'c').by(__.select('r')).by(__.select('c')).as(' GENERATED11').select('r').as('r').select(' GENERATED11').select('c').as('c').where(__.select('r').is(eq(' cypher.null'))).select('c', 'r').project('c', ' FRESHID85').by(__.select('c')).by(__.select('r').choose(__.is(eq(' cypher.null')), __.constant(true), __.constant(false))).as(' GENERATED14').select('c').as('c').select(' GENERATED14').select(' FRESHID85').as(' FRESHID85').select('c', ' FRESHID85').project('c', ' FRESHID85').by(__.select('c')).by(__.select(' FRESHID85')).as(' GENERATED16').select('c').as('c').select(' GENERATED16').select(' FRESHID85').as(' FRESHID85').select('c').as('c').project('c.name').by(__.choose(neq(' cypher.null'), __.coalesce(__.values('name'), __.constant(' cypher.null')), __.constant(' cypher.null')))

Then the result should be: 0.000
c.name
'c12'
'c22'
And no side effects 0.015

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

0.061
Given the binary-tree-2 graph 0.037

12:03:13.628 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: CREATE (a:A {name: 'a'}), (b1:X {name: 'b1'}), (b2:X {name: 'b2'}), (b3:X {name: 'b3'}), (b4:X {name: 'b4'}), (c11:X {name: 'c11'}), (c12:Y {name: 'c12'}), (c21:X {name: 'c21'}), (c22:Y {name: 'c22'}), (c31:X {name: 'c31'}), (c32:Y {name: 'c32'}), (c41:X {name: 'c41'}), (c42:Y {name: 'c42'}) CREATE (a)-[:KNOWS]->(b1), (a)-[:KNOWS]->(b2), (a)-[:FOLLOWS]->(b3), (a)-[:FOLLOWS]->(b4) CREATE (b1)-[:FRIEND]->(c11), (b1)-[:FRIEND]->(c12), (b2)-[:FRIEND]->(c21), (b2)-[:FRIEND]->(c22), (b3)-[:FRIEND]->(c31), (b3)-[:FRIEND]->(c32), (b4)-[:FRIEND]->(c41), (b4)-[:FRIEND]->(c42) CREATE (b1)-[:FRIEND]->(b2), (b2)-[:FRIEND]->(b3), (b3)-[:FRIEND]->(b4), (b4)-[:FRIEND]->(b1); 12:03:13.653 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.addV('A').as('a').property('name', 'a').addV('X').as('b1').property('name', 'b1').addV('X').as('b2').property('name', 'b2').addV('X').as('b3').property('name', 'b3').addV('X').as('b4').property('name', 'b4').addV('X').as('c11').property('name', 'c11').addV('Y').as('c12').property('name', 'c12').addV('X').as('c21').property('name', 'c21').addV('Y').as('c22').property('name', 'c22').addV('X').as('c31').property('name', 'c31').addV('Y').as('c32').property('name', 'c32').addV('X').as('c41').property('name', 'c41').addV('Y').as('c42').property('name', 'c42').addE('KNOWS').from('a').to('b1').addE('KNOWS').from('a').to('b2').addE('FOLLOWS').from('a').to('b3').addE('FOLLOWS').from('a').to('b4').addE('FRIEND').from('b1').to('c11').addE('FRIEND').from('b1').to('c12').addE('FRIEND').from('b2').to('c21').addE('FRIEND').from('b2').to('c22').addE('FRIEND').from('b3').to('c31').addE('FRIEND').from('b3').to('c32').addE('FRIEND').from('b4').to('c41').addE('FRIEND').from('b4').to('c42').addE('FRIEND').from('b1').to('b2').addE('FRIEND').from('b2').to('b3').addE('FRIEND').from('b3').to('b4').addE('FRIEND').from('b4').to('b1').barrier().limit(0)

When executing query: 0.009
MATCH (a:A)-[:KNOWS]->(b)-->(c:X)
OPTIONAL MATCH (a)-[r:KNOWS]->(c)
WITH c WHERE r IS NULL
RETURN c.name

12:03:13.680 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH (a:A)-[:KNOWS]->(b)-->(c:X) OPTIONAL MATCH (a)-[r:KNOWS]->(c) WITH c WHERE r IS NULL RETURN c.name 12:03:13.686 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().as('a').hasLabel('A').outE('KNOWS').as(' UNNAMED12').inV().as(' cypher.path.start.GENERATED2').outE().as(' UNNAMED26').inV().as('c').hasLabel('X').where(__.select(' UNNAMED12').where(neq(' UNNAMED26'))).coalesce(__.select('a').outE('KNOWS').as('r').inV().as(' GENERATED5').where(__.select(' GENERATED5').where(eq('c'))).select('a', 'r', 'c'), __.constant(' cypher.null').as(' GENERATED6').as('r').as(' GENERATED7').select(' GENERATED6', 'r', ' GENERATED7')).select('r').as('r').select('r', 'c').project('r', 'c').by(__.select('r')).by(__.select('c')).as(' GENERATED11').select('r').as('r').select(' GENERATED11').select('c').as('c').where(__.select('r').is(eq(' cypher.null'))).select('c', 'r').project('c', ' FRESHID83').by(__.select('c')).by(__.select('r').choose(__.is(eq(' cypher.null')), __.constant(true), __.constant(false))).as(' GENERATED14').select('c').as('c').select(' GENERATED14').select(' FRESHID83').as(' FRESHID83').select('c', ' FRESHID83').project('c', ' FRESHID83').by(__.select('c')).by(__.select(' FRESHID83')).as(' GENERATED16').select('c').as('c').select(' GENERATED16').select(' FRESHID83').as(' FRESHID83').select('c').as('c').project('c.name').by(__.choose(neq(' cypher.null'), __.coalesce(__.values('name'), __.constant(' cypher.null')), __.constant(' cypher.null')))

Then the result should be: 0.000
c.name
'b3'
'c11'
'c21'
And no side effects 0.013

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

0.056
Given the binary-tree-2 graph 0.031

12:03:13.704 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: CREATE (a:A {name: 'a'}), (b1:X {name: 'b1'}), (b2:X {name: 'b2'}), (b3:X {name: 'b3'}), (b4:X {name: 'b4'}), (c11:X {name: 'c11'}), (c12:Y {name: 'c12'}), (c21:X {name: 'c21'}), (c22:Y {name: 'c22'}), (c31:X {name: 'c31'}), (c32:Y {name: 'c32'}), (c41:X {name: 'c41'}), (c42:Y {name: 'c42'}) CREATE (a)-[:KNOWS]->(b1), (a)-[:KNOWS]->(b2), (a)-[:FOLLOWS]->(b3), (a)-[:FOLLOWS]->(b4) CREATE (b1)-[:FRIEND]->(c11), (b1)-[:FRIEND]->(c12), (b2)-[:FRIEND]->(c21), (b2)-[:FRIEND]->(c22), (b3)-[:FRIEND]->(c31), (b3)-[:FRIEND]->(c32), (b4)-[:FRIEND]->(c41), (b4)-[:FRIEND]->(c42) CREATE (b1)-[:FRIEND]->(b2), (b2)-[:FRIEND]->(b3), (b3)-[:FRIEND]->(b4), (b4)-[:FRIEND]->(b1); 12:03:13.717 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.addV('A').as('a').property('name', 'a').addV('X').as('b1').property('name', 'b1').addV('X').as('b2').property('name', 'b2').addV('X').as('b3').property('name', 'b3').addV('X').as('b4').property('name', 'b4').addV('X').as('c11').property('name', 'c11').addV('Y').as('c12').property('name', 'c12').addV('X').as('c21').property('name', 'c21').addV('Y').as('c22').property('name', 'c22').addV('X').as('c31').property('name', 'c31').addV('Y').as('c32').property('name', 'c32').addV('X').as('c41').property('name', 'c41').addV('Y').as('c42').property('name', 'c42').addE('KNOWS').from('a').to('b1').addE('KNOWS').from('a').to('b2').addE('FOLLOWS').from('a').to('b3').addE('FOLLOWS').from('a').to('b4').addE('FRIEND').from('b1').to('c11').addE('FRIEND').from('b1').to('c12').addE('FRIEND').from('b2').to('c21').addE('FRIEND').from('b2').to('c22').addE('FRIEND').from('b3').to('c31').addE('FRIEND').from('b3').to('c32').addE('FRIEND').from('b4').to('c41').addE('FRIEND').from('b4').to('c42').addE('FRIEND').from('b1').to('b2').addE('FRIEND').from('b2').to('b3').addE('FRIEND').from('b3').to('b4').addE('FRIEND').from('b4').to('b1').barrier().limit(0)

When executing query: 0.010
MATCH (a:A)-[:KNOWS]->(b:X)-->(c)
OPTIONAL MATCH (a)-[r:KNOWS]->(c)
WITH c WHERE r IS NULL
RETURN c.name

12:03:13.757 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH (a:A)-[:KNOWS]->(b:X)-->(c) OPTIONAL MATCH (a)-[r:KNOWS]->(c) WITH c WHERE r IS NULL RETURN c.name 12:03:13.764 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().as('a').hasLabel('A').outE('KNOWS').as(' UNNAMED12').inV().hasLabel('X').outE().as(' UNNAMED28').inV().as('c').where(__.select(' UNNAMED12').where(neq(' UNNAMED28'))).coalesce(__.select('a').outE('KNOWS').as('r').inV().as(' GENERATED5').where(__.select(' GENERATED5').where(eq('c'))).select('a', 'r', 'c'), __.constant(' cypher.null').as(' GENERATED6').as('r').as(' GENERATED7').select(' GENERATED6', 'r', ' GENERATED7')).select('r').as('r').select('r', 'c').project('r', 'c').by(__.select('r')).by(__.select('c')).as(' GENERATED11').select('r').as('r').select(' GENERATED11').select('c').as('c').where(__.select('r').is(eq(' cypher.null'))).select('c', 'r').project('c', ' FRESHID83').by(__.select('c')).by(__.select('r').choose(__.is(eq(' cypher.null')), __.constant(true), __.constant(false))).as(' GENERATED14').select('c').as('c').select(' GENERATED14').select(' FRESHID83').as(' FRESHID83').select('c', ' FRESHID83').project('c', ' FRESHID83').by(__.select('c')).by(__.select(' FRESHID83')).as(' GENERATED16').select('c').as('c').select(' GENERATED16').select(' FRESHID83').as(' FRESHID83').select('c').as('c').project('c.name').by(__.choose(neq(' cypher.null'), __.coalesce(__.values('name'), __.constant(' cypher.null')), __.constant(' cypher.null')))

Then the result should be: 0.000
c.name
'b3'
'c11'
'c12'
'c21'
'c22'
And no side effects 0.014

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

0.058
Given the binary-tree-2 graph 0.025

12:03:13.783 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: CREATE (a:A {name: 'a'}), (b1:X {name: 'b1'}), (b2:X {name: 'b2'}), (b3:X {name: 'b3'}), (b4:X {name: 'b4'}), (c11:X {name: 'c11'}), (c12:Y {name: 'c12'}), (c21:X {name: 'c21'}), (c22:Y {name: 'c22'}), (c31:X {name: 'c31'}), (c32:Y {name: 'c32'}), (c41:X {name: 'c41'}), (c42:Y {name: 'c42'}) CREATE (a)-[:KNOWS]->(b1), (a)-[:KNOWS]->(b2), (a)-[:FOLLOWS]->(b3), (a)-[:FOLLOWS]->(b4) CREATE (b1)-[:FRIEND]->(c11), (b1)-[:FRIEND]->(c12), (b2)-[:FRIEND]->(c21), (b2)-[:FRIEND]->(c22), (b3)-[:FRIEND]->(c31), (b3)-[:FRIEND]->(c32), (b4)-[:FRIEND]->(c41), (b4)-[:FRIEND]->(c42) CREATE (b1)-[:FRIEND]->(b2), (b2)-[:FRIEND]->(b3), (b3)-[:FRIEND]->(b4), (b4)-[:FRIEND]->(b1); 12:03:13.796 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.addV('A').as('a').property('name', 'a').addV('X').as('b1').property('name', 'b1').addV('X').as('b2').property('name', 'b2').addV('X').as('b3').property('name', 'b3').addV('X').as('b4').property('name', 'b4').addV('X').as('c11').property('name', 'c11').addV('Y').as('c12').property('name', 'c12').addV('X').as('c21').property('name', 'c21').addV('Y').as('c22').property('name', 'c22').addV('X').as('c31').property('name', 'c31').addV('Y').as('c32').property('name', 'c32').addV('X').as('c41').property('name', 'c41').addV('Y').as('c42').property('name', 'c42').addE('KNOWS').from('a').to('b1').addE('KNOWS').from('a').to('b2').addE('FOLLOWS').from('a').to('b3').addE('FOLLOWS').from('a').to('b4').addE('FRIEND').from('b1').to('c11').addE('FRIEND').from('b1').to('c12').addE('FRIEND').from('b2').to('c21').addE('FRIEND').from('b2').to('c22').addE('FRIEND').from('b3').to('c31').addE('FRIEND').from('b3').to('c32').addE('FRIEND').from('b4').to('c41').addE('FRIEND').from('b4').to('c42').addE('FRIEND').from('b1').to('b2').addE('FRIEND').from('b2').to('b3').addE('FRIEND').from('b3').to('b4').addE('FRIEND').from('b4').to('b1').barrier().limit(0)

When executing query: 0.009
MATCH (a:A)-[:KNOWS]->(b)-->(c)
OPTIONAL MATCH (a)-[r:KNOWS]->(c)
WITH c WHERE r IS NOT NULL
RETURN c.name

12:03:13.824 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH (a:A)-[:KNOWS]->(b)-->(c) OPTIONAL MATCH (a)-[r:KNOWS]->(c) WITH c WHERE r IS NOT NULL RETURN c.name 12:03:13.830 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().as('a').hasLabel('A').outE('KNOWS').as(' UNNAMED12').inV().as(' cypher.path.start.GENERATED2').outE().as(' UNNAMED26').inV().as('c').where(__.select(' UNNAMED12').where(neq(' UNNAMED26'))).coalesce(__.select('a').outE('KNOWS').as('r').inV().as(' GENERATED5').where(__.select(' GENERATED5').where(eq('c'))).select('a', 'r', 'c'), __.constant(' cypher.null').as(' GENERATED6').as('r').as(' GENERATED7').select(' GENERATED6', 'r', ' GENERATED7')).select('r').as('r').select('r', 'c').project('r', 'c').by(__.select('r')).by(__.select('c')).as(' GENERATED11').select('r').as('r').select(' GENERATED11').select('c').as('c').where(__.select('r').is(neq(' cypher.null'))).select('c', 'r').project('c', ' FRESHID81').by(__.select('c')).by(__.select('r').choose(__.is(neq(' cypher.null')), __.constant(true), __.constant(false))).as(' GENERATED14').select('c').as('c').select(' GENERATED14').select(' FRESHID81').as(' FRESHID81').select('c', ' FRESHID81').project('c', ' FRESHID81').by(__.select('c')).by(__.select(' FRESHID81')).as(' GENERATED16').select('c').as('c').select(' GENERATED16').select(' FRESHID81').as(' FRESHID81').select('c').as('c').project('c.name').by(__.choose(neq(' cypher.null'), __.coalesce(__.values('name'), __.constant(' cypher.null')), __.constant(' cypher.null')))

Then the result should be: 0.000
c.name
'b2'
And no side effects 0.022

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

0.049
Given the binary-tree-1 graph 0.025

12:03:13.857 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: CREATE (a:A {name: 'a'}), (b1:X {name: 'b1'}), (b2:X {name: 'b2'}), (b3:X {name: 'b3'}), (b4:X {name: 'b4'}), (c11:X {name: 'c11'}), (c12:X {name: 'c12'}), (c21:X {name: 'c21'}), (c22:X {name: 'c22'}), (c31:X {name: 'c31'}), (c32:X {name: 'c32'}), (c41:X {name: 'c41'}), (c42:X {name: 'c42'}) CREATE (a)-[:KNOWS]->(b1), (a)-[:KNOWS]->(b2), (a)-[:FOLLOWS]->(b3), (a)-[:FOLLOWS]->(b4) CREATE (b1)-[:FRIEND]->(c11), (b1)-[:FRIEND]->(c12), (b2)-[:FRIEND]->(c21), (b2)-[:FRIEND]->(c22), (b3)-[:FRIEND]->(c31), (b3)-[:FRIEND]->(c32), (b4)-[:FRIEND]->(c41), (b4)-[:FRIEND]->(c42) CREATE (b1)-[:FRIEND]->(b2), (b2)-[:FRIEND]->(b3), (b3)-[:FRIEND]->(b4), (b4)-[:FRIEND]->(b1); 12:03:13.869 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.addV('A').as('a').property('name', 'a').addV('X').as('b1').property('name', 'b1').addV('X').as('b2').property('name', 'b2').addV('X').as('b3').property('name', 'b3').addV('X').as('b4').property('name', 'b4').addV('X').as('c11').property('name', 'c11').addV('X').as('c12').property('name', 'c12').addV('X').as('c21').property('name', 'c21').addV('X').as('c22').property('name', 'c22').addV('X').as('c31').property('name', 'c31').addV('X').as('c32').property('name', 'c32').addV('X').as('c41').property('name', 'c41').addV('X').as('c42').property('name', 'c42').addE('KNOWS').from('a').to('b1').addE('KNOWS').from('a').to('b2').addE('FOLLOWS').from('a').to('b3').addE('FOLLOWS').from('a').to('b4').addE('FRIEND').from('b1').to('c11').addE('FRIEND').from('b1').to('c12').addE('FRIEND').from('b2').to('c21').addE('FRIEND').from('b2').to('c22').addE('FRIEND').from('b3').to('c31').addE('FRIEND').from('b3').to('c32').addE('FRIEND').from('b4').to('c41').addE('FRIEND').from('b4').to('c42').addE('FRIEND').from('b1').to('b2').addE('FRIEND').from('b2').to('b3').addE('FRIEND').from('b3').to('b4').addE('FRIEND').from('b4').to('b1').barrier().limit(0)

When executing query: 0.010
MATCH (a:A)-[:KNOWS]->(b)-->(c)
OPTIONAL MATCH (a)-[r:FOLLOWS]->(c)
WITH c WHERE r IS NOT NULL
RETURN c.name

12:03:13.897 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH (a:A)-[:KNOWS]->(b)-->(c) OPTIONAL MATCH (a)-[r:FOLLOWS]->(c) WITH c WHERE r IS NOT NULL RETURN c.name 12:03:13.904 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().as('a').hasLabel('A').outE('KNOWS').as(' UNNAMED12').inV().as(' cypher.path.start.GENERATED2').outE().as(' UNNAMED26').inV().as('c').where(__.select(' UNNAMED12').where(neq(' UNNAMED26'))).coalesce(__.select('a').outE('FOLLOWS').as('r').inV().as(' GENERATED5').where(__.select(' GENERATED5').where(eq('c'))).select('a', 'r', 'c'), __.constant(' cypher.null').as(' GENERATED6').as('r').as(' GENERATED7').select(' GENERATED6', 'r', ' GENERATED7')).select('r').as('r').select('r', 'c').project('r', 'c').by(__.select('r')).by(__.select('c')).as(' GENERATED11').select('r').as('r').select(' GENERATED11').select('c').as('c').where(__.select('r').is(neq(' cypher.null'))).select('c', 'r').project('c', ' FRESHID83').by(__.select('c')).by(__.select('r').choose(__.is(neq(' cypher.null')), __.constant(true), __.constant(false))).as(' GENERATED14').select('c').as('c').select(' GENERATED14').select(' FRESHID83').as(' FRESHID83').select('c', ' FRESHID83').project('c', ' FRESHID83').by(__.select('c')).by(__.select(' FRESHID83')).as(' GENERATED16').select('c').as('c').select(' GENERATED16').select(' FRESHID83').as(' FRESHID83').select('c').as('c').project('c.name').by(__.choose(neq(' cypher.null'), __.coalesce(__.values('name'), __.constant(' cypher.null')), __.constant(' cypher.null')))

Then the result should be: 0.000
c.name
'b3'
And no side effects 0.014

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

0.056
Given the binary-tree-1 graph 0.033

12:03:13.923 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: CREATE (a:A {name: 'a'}), (b1:X {name: 'b1'}), (b2:X {name: 'b2'}), (b3:X {name: 'b3'}), (b4:X {name: 'b4'}), (c11:X {name: 'c11'}), (c12:X {name: 'c12'}), (c21:X {name: 'c21'}), (c22:X {name: 'c22'}), (c31:X {name: 'c31'}), (c32:X {name: 'c32'}), (c41:X {name: 'c41'}), (c42:X {name: 'c42'}) CREATE (a)-[:KNOWS]->(b1), (a)-[:KNOWS]->(b2), (a)-[:FOLLOWS]->(b3), (a)-[:FOLLOWS]->(b4) CREATE (b1)-[:FRIEND]->(c11), (b1)-[:FRIEND]->(c12), (b2)-[:FRIEND]->(c21), (b2)-[:FRIEND]->(c22), (b3)-[:FRIEND]->(c31), (b3)-[:FRIEND]->(c32), (b4)-[:FRIEND]->(c41), (b4)-[:FRIEND]->(c42) CREATE (b1)-[:FRIEND]->(b2), (b2)-[:FRIEND]->(b3), (b3)-[:FRIEND]->(b4), (b4)-[:FRIEND]->(b1); 12:03:13.941 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.addV('A').as('a').property('name', 'a').addV('X').as('b1').property('name', 'b1').addV('X').as('b2').property('name', 'b2').addV('X').as('b3').property('name', 'b3').addV('X').as('b4').property('name', 'b4').addV('X').as('c11').property('name', 'c11').addV('X').as('c12').property('name', 'c12').addV('X').as('c21').property('name', 'c21').addV('X').as('c22').property('name', 'c22').addV('X').as('c31').property('name', 'c31').addV('X').as('c32').property('name', 'c32').addV('X').as('c41').property('name', 'c41').addV('X').as('c42').property('name', 'c42').addE('KNOWS').from('a').to('b1').addE('KNOWS').from('a').to('b2').addE('FOLLOWS').from('a').to('b3').addE('FOLLOWS').from('a').to('b4').addE('FRIEND').from('b1').to('c11').addE('FRIEND').from('b1').to('c12').addE('FRIEND').from('b2').to('c21').addE('FRIEND').from('b2').to('c22').addE('FRIEND').from('b3').to('c31').addE('FRIEND').from('b3').to('c32').addE('FRIEND').from('b4').to('c41').addE('FRIEND').from('b4').to('c42').addE('FRIEND').from('b1').to('b2').addE('FRIEND').from('b2').to('b3').addE('FRIEND').from('b3').to('b4').addE('FRIEND').from('b4').to('b1').barrier().limit(0)

When executing query: 0.009
MATCH (a:A)-[:KNOWS]->(b)-->(c)
OPTIONAL MATCH (a)-[r]->(c)
WITH c WHERE r IS NOT NULL
RETURN c.name

12:03:13.970 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH (a:A)-[:KNOWS]->(b)-->(c) OPTIONAL MATCH (a)-[r]->(c) WITH c WHERE r IS NOT NULL RETURN c.name 12:03:13.976 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().as('a').hasLabel('A').outE('KNOWS').as(' UNNAMED12').inV().as(' cypher.path.start.GENERATED2').outE().as(' UNNAMED26').inV().as('c').where(__.select(' UNNAMED12').where(neq(' UNNAMED26'))).coalesce(__.select('a').outE().as('r').inV().as(' GENERATED5').where(__.select(' GENERATED5').where(eq('c'))).select('a', 'r', 'c'), __.constant(' cypher.null').as(' GENERATED6').as('r').as(' GENERATED7').select(' GENERATED6', 'r', ' GENERATED7')).select('r').as('r').select('r', 'c').project('r', 'c').by(__.select('r')).by(__.select('c')).as(' GENERATED11').select('r').as('r').select(' GENERATED11').select('c').as('c').where(__.select('r').is(neq(' cypher.null'))).select('c', 'r').project('c', ' FRESHID75').by(__.select('c')).by(__.select('r').choose(__.is(neq(' cypher.null')), __.constant(true), __.constant(false))).as(' GENERATED14').select('c').as('c').select(' GENERATED14').select(' FRESHID75').as(' FRESHID75').select('c', ' FRESHID75').project('c', ' FRESHID75').by(__.select('c')).by(__.select(' FRESHID75')).as(' GENERATED16').select('c').as('c').select(' GENERATED16').select(' FRESHID75').as(' FRESHID75').select('c').as('c').project('c.name').by(__.choose(neq(' cypher.null'), __.coalesce(__.values('name'), __.constant(' cypher.null')), __.constant(' cypher.null')))

Then the result should be: 0.000
c.name
'b2'
'b3'
And no side effects 0.014

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

0.049
Given the binary-tree-1 graph 0.025

12:03:13.994 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: CREATE (a:A {name: 'a'}), (b1:X {name: 'b1'}), (b2:X {name: 'b2'}), (b3:X {name: 'b3'}), (b4:X {name: 'b4'}), (c11:X {name: 'c11'}), (c12:X {name: 'c12'}), (c21:X {name: 'c21'}), (c22:X {name: 'c22'}), (c31:X {name: 'c31'}), (c32:X {name: 'c32'}), (c41:X {name: 'c41'}), (c42:X {name: 'c42'}) CREATE (a)-[:KNOWS]->(b1), (a)-[:KNOWS]->(b2), (a)-[:FOLLOWS]->(b3), (a)-[:FOLLOWS]->(b4) CREATE (b1)-[:FRIEND]->(c11), (b1)-[:FRIEND]->(c12), (b2)-[:FRIEND]->(c21), (b2)-[:FRIEND]->(c22), (b3)-[:FRIEND]->(c31), (b3)-[:FRIEND]->(c32), (b4)-[:FRIEND]->(c41), (b4)-[:FRIEND]->(c42) CREATE (b1)-[:FRIEND]->(b2), (b2)-[:FRIEND]->(b3), (b3)-[:FRIEND]->(b4), (b4)-[:FRIEND]->(b1); 12:03:14.006 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.addV('A').as('a').property('name', 'a').addV('X').as('b1').property('name', 'b1').addV('X').as('b2').property('name', 'b2').addV('X').as('b3').property('name', 'b3').addV('X').as('b4').property('name', 'b4').addV('X').as('c11').property('name', 'c11').addV('X').as('c12').property('name', 'c12').addV('X').as('c21').property('name', 'c21').addV('X').as('c22').property('name', 'c22').addV('X').as('c31').property('name', 'c31').addV('X').as('c32').property('name', 'c32').addV('X').as('c41').property('name', 'c41').addV('X').as('c42').property('name', 'c42').addE('KNOWS').from('a').to('b1').addE('KNOWS').from('a').to('b2').addE('FOLLOWS').from('a').to('b3').addE('FOLLOWS').from('a').to('b4').addE('FRIEND').from('b1').to('c11').addE('FRIEND').from('b1').to('c12').addE('FRIEND').from('b2').to('c21').addE('FRIEND').from('b2').to('c22').addE('FRIEND').from('b3').to('c31').addE('FRIEND').from('b3').to('c32').addE('FRIEND').from('b4').to('c41').addE('FRIEND').from('b4').to('c42').addE('FRIEND').from('b1').to('b2').addE('FRIEND').from('b2').to('b3').addE('FRIEND').from('b3').to('b4').addE('FRIEND').from('b4').to('b1').barrier().limit(0)

When executing query: 0.008
MATCH (a:A)-->(b)-->(c)
OPTIONAL MATCH (a)-[r:KNOWS]->(c)
WITH c WHERE r IS NOT NULL
RETURN c.name

12:03:14.034 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH (a:A)-->(b)-->(c) OPTIONAL MATCH (a)-[r:KNOWS]->(c) WITH c WHERE r IS NOT NULL RETURN c.name 12:03:14.040 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().as('a').hasLabel('A').outE().as(' UNNAMED12').inV().as(' cypher.path.start.GENERATED2').outE().as(' UNNAMED18').inV().as('c').where(__.select(' UNNAMED12').where(neq(' UNNAMED18'))).coalesce(__.select('a').outE('KNOWS').as('r').inV().as(' GENERATED5').where(__.select(' GENERATED5').where(eq('c'))).select('a', 'r', 'c'), __.constant(' cypher.null').as(' GENERATED6').as('r').as(' GENERATED7').select(' GENERATED6', 'r', ' GENERATED7')).select('r').as('r').select('r', 'c').project('r', 'c').by(__.select('r')).by(__.select('c')).as(' GENERATED11').select('r').as('r').select(' GENERATED11').select('c').as('c').where(__.select('r').is(neq(' cypher.null'))).select('c', 'r').project('c', ' FRESHID73').by(__.select('c')).by(__.select('r').choose(__.is(neq(' cypher.null')), __.constant(true), __.constant(false))).as(' GENERATED14').select('c').as('c').select(' GENERATED14').select(' FRESHID73').as(' FRESHID73').select('c', ' FRESHID73').project('c', ' FRESHID73').by(__.select('c')).by(__.select(' FRESHID73')).as(' GENERATED16').select('c').as('c').select(' GENERATED16').select(' FRESHID73').as(' FRESHID73').select('c').as('c').project('c.name').by(__.choose(neq(' cypher.null'), __.coalesce(__.values('name'), __.constant(' cypher.null')), __.constant(' cypher.null')))

Then the result should be: 0.000
c.name
'b1'
'b2'
And no side effects 0.015

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

0.052
Given the binary-tree-1 graph 0.024

12:03:14.059 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: CREATE (a:A {name: 'a'}), (b1:X {name: 'b1'}), (b2:X {name: 'b2'}), (b3:X {name: 'b3'}), (b4:X {name: 'b4'}), (c11:X {name: 'c11'}), (c12:X {name: 'c12'}), (c21:X {name: 'c21'}), (c22:X {name: 'c22'}), (c31:X {name: 'c31'}), (c32:X {name: 'c32'}), (c41:X {name: 'c41'}), (c42:X {name: 'c42'}) CREATE (a)-[:KNOWS]->(b1), (a)-[:KNOWS]->(b2), (a)-[:FOLLOWS]->(b3), (a)-[:FOLLOWS]->(b4) CREATE (b1)-[:FRIEND]->(c11), (b1)-[:FRIEND]->(c12), (b2)-[:FRIEND]->(c21), (b2)-[:FRIEND]->(c22), (b3)-[:FRIEND]->(c31), (b3)-[:FRIEND]->(c32), (b4)-[:FRIEND]->(c41), (b4)-[:FRIEND]->(c42) CREATE (b1)-[:FRIEND]->(b2), (b2)-[:FRIEND]->(b3), (b3)-[:FRIEND]->(b4), (b4)-[:FRIEND]->(b1); 12:03:14.070 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.addV('A').as('a').property('name', 'a').addV('X').as('b1').property('name', 'b1').addV('X').as('b2').property('name', 'b2').addV('X').as('b3').property('name', 'b3').addV('X').as('b4').property('name', 'b4').addV('X').as('c11').property('name', 'c11').addV('X').as('c12').property('name', 'c12').addV('X').as('c21').property('name', 'c21').addV('X').as('c22').property('name', 'c22').addV('X').as('c31').property('name', 'c31').addV('X').as('c32').property('name', 'c32').addV('X').as('c41').property('name', 'c41').addV('X').as('c42').property('name', 'c42').addE('KNOWS').from('a').to('b1').addE('KNOWS').from('a').to('b2').addE('FOLLOWS').from('a').to('b3').addE('FOLLOWS').from('a').to('b4').addE('FRIEND').from('b1').to('c11').addE('FRIEND').from('b1').to('c12').addE('FRIEND').from('b2').to('c21').addE('FRIEND').from('b2').to('c22').addE('FRIEND').from('b3').to('c31').addE('FRIEND').from('b3').to('c32').addE('FRIEND').from('b4').to('c41').addE('FRIEND').from('b4').to('c42').addE('FRIEND').from('b1').to('b2').addE('FRIEND').from('b2').to('b3').addE('FRIEND').from('b3').to('b4').addE('FRIEND').from('b4').to('b1').barrier().limit(0)

When executing query: 0.012
MATCH (a:A)-[:KNOWS|FOLLOWS]->(b)-->(c)
OPTIONAL MATCH (a)-[r:KNOWS]->(c)
WITH c WHERE r IS NOT NULL
RETURN c.name

12:03:14.097 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH (a:A)-[:KNOWS|FOLLOWS]->(b)-->(c) OPTIONAL MATCH (a)-[r:KNOWS]->(c) WITH c WHERE r IS NOT NULL RETURN c.name 12:03:14.106 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().as('a').hasLabel('A').outE('KNOWS', 'FOLLOWS').as(' UNNAMED12').inV().as(' cypher.path.start.GENERATED2').outE().as(' UNNAMED34').inV().as('c').where(__.select(' UNNAMED12').where(neq(' UNNAMED34'))).coalesce(__.select('a').outE('KNOWS').as('r').inV().as(' GENERATED5').where(__.select(' GENERATED5').where(eq('c'))).select('a', 'r', 'c'), __.constant(' cypher.null').as(' GENERATED6').as('r').as(' GENERATED7').select(' GENERATED6', 'r', ' GENERATED7')).select('r').as('r').select('r', 'c').project('r', 'c').by(__.select('r')).by(__.select('c')).as(' GENERATED11').select('r').as('r').select(' GENERATED11').select('c').as('c').where(__.select('r').is(neq(' cypher.null'))).select('c', 'r').project('c', ' FRESHID89').by(__.select('c')).by(__.select('r').choose(__.is(neq(' cypher.null')), __.constant(true), __.constant(false))).as(' GENERATED14').select('c').as('c').select(' GENERATED14').select(' FRESHID89').as(' FRESHID89').select('c', ' FRESHID89').project('c', ' FRESHID89').by(__.select('c')).by(__.select(' FRESHID89')).as(' GENERATED16').select('c').as('c').select(' GENERATED16').select(' FRESHID89').as(' FRESHID89').select('c').as('c').project('c.name').by(__.choose(neq(' cypher.null'), __.coalesce(__.values('name'), __.constant(' cypher.null')), __.constant(' cypher.null')))

Then the result should be: 0.000
c.name
'b1'
'b2'
And no side effects 0.015

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

0.049
Given the binary-tree-2 graph 0.025

12:03:14.126 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: CREATE (a:A {name: 'a'}), (b1:X {name: 'b1'}), (b2:X {name: 'b2'}), (b3:X {name: 'b3'}), (b4:X {name: 'b4'}), (c11:X {name: 'c11'}), (c12:Y {name: 'c12'}), (c21:X {name: 'c21'}), (c22:Y {name: 'c22'}), (c31:X {name: 'c31'}), (c32:Y {name: 'c32'}), (c41:X {name: 'c41'}), (c42:Y {name: 'c42'}) CREATE (a)-[:KNOWS]->(b1), (a)-[:KNOWS]->(b2), (a)-[:FOLLOWS]->(b3), (a)-[:FOLLOWS]->(b4) CREATE (b1)-[:FRIEND]->(c11), (b1)-[:FRIEND]->(c12), (b2)-[:FRIEND]->(c21), (b2)-[:FRIEND]->(c22), (b3)-[:FRIEND]->(c31), (b3)-[:FRIEND]->(c32), (b4)-[:FRIEND]->(c41), (b4)-[:FRIEND]->(c42) CREATE (b1)-[:FRIEND]->(b2), (b2)-[:FRIEND]->(b3), (b3)-[:FRIEND]->(b4), (b4)-[:FRIEND]->(b1); 12:03:14.139 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.addV('A').as('a').property('name', 'a').addV('X').as('b1').property('name', 'b1').addV('X').as('b2').property('name', 'b2').addV('X').as('b3').property('name', 'b3').addV('X').as('b4').property('name', 'b4').addV('X').as('c11').property('name', 'c11').addV('Y').as('c12').property('name', 'c12').addV('X').as('c21').property('name', 'c21').addV('Y').as('c22').property('name', 'c22').addV('X').as('c31').property('name', 'c31').addV('Y').as('c32').property('name', 'c32').addV('X').as('c41').property('name', 'c41').addV('Y').as('c42').property('name', 'c42').addE('KNOWS').from('a').to('b1').addE('KNOWS').from('a').to('b2').addE('FOLLOWS').from('a').to('b3').addE('FOLLOWS').from('a').to('b4').addE('FRIEND').from('b1').to('c11').addE('FRIEND').from('b1').to('c12').addE('FRIEND').from('b2').to('c21').addE('FRIEND').from('b2').to('c22').addE('FRIEND').from('b3').to('c31').addE('FRIEND').from('b3').to('c32').addE('FRIEND').from('b4').to('c41').addE('FRIEND').from('b4').to('c42').addE('FRIEND').from('b1').to('b2').addE('FRIEND').from('b2').to('b3').addE('FRIEND').from('b3').to('b4').addE('FRIEND').from('b4').to('b1').barrier().limit(0)

When executing query: 0.009
MATCH (a:A)-[:KNOWS]->(b:X)-->(c:X)
OPTIONAL MATCH (a)-[r:KNOWS]->(c)
WITH c WHERE r IS NOT NULL
RETURN c.name

12:03:14.166 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH (a:A)-[:KNOWS]->(b:X)-->(c:X) OPTIONAL MATCH (a)-[r:KNOWS]->(c) WITH c WHERE r IS NOT NULL RETURN c.name 12:03:14.172 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().as('a').hasLabel('A').outE('KNOWS').as(' UNNAMED12').inV().hasLabel('X').outE().as(' UNNAMED28').inV().as('c').hasLabel('X').where(__.select(' UNNAMED12').where(neq(' UNNAMED28'))).coalesce(__.select('a').outE('KNOWS').as('r').inV().as(' GENERATED5').where(__.select(' GENERATED5').where(eq('c'))).select('a', 'r', 'c'), __.constant(' cypher.null').as(' GENERATED6').as('r').as(' GENERATED7').select(' GENERATED6', 'r', ' GENERATED7')).select('r').as('r').select('r', 'c').project('r', 'c').by(__.select('r')).by(__.select('c')).as(' GENERATED11').select('r').as('r').select(' GENERATED11').select('c').as('c').where(__.select('r').is(neq(' cypher.null'))).select('c', 'r').project('c', ' FRESHID85').by(__.select('c')).by(__.select('r').choose(__.is(neq(' cypher.null')), __.constant(true), __.constant(false))).as(' GENERATED14').select('c').as('c').select(' GENERATED14').select(' FRESHID85').as(' FRESHID85').select('c', ' FRESHID85').project('c', ' FRESHID85').by(__.select('c')).by(__.select(' FRESHID85')).as(' GENERATED16').select('c').as('c').select(' GENERATED16').select(' FRESHID85').as(' FRESHID85').select('c').as('c').project('c.name').by(__.choose(neq(' cypher.null'), __.coalesce(__.values('name'), __.constant(' cypher.null')), __.constant(' cypher.null')))

Then the result should be: 0.000
c.name
'b2'
And no side effects 0.014

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

0.060
Given the binary-tree-2 graph 0.031

12:03:14.191 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: CREATE (a:A {name: 'a'}), (b1:X {name: 'b1'}), (b2:X {name: 'b2'}), (b3:X {name: 'b3'}), (b4:X {name: 'b4'}), (c11:X {name: 'c11'}), (c12:Y {name: 'c12'}), (c21:X {name: 'c21'}), (c22:Y {name: 'c22'}), (c31:X {name: 'c31'}), (c32:Y {name: 'c32'}), (c41:X {name: 'c41'}), (c42:Y {name: 'c42'}) CREATE (a)-[:KNOWS]->(b1), (a)-[:KNOWS]->(b2), (a)-[:FOLLOWS]->(b3), (a)-[:FOLLOWS]->(b4) CREATE (b1)-[:FRIEND]->(c11), (b1)-[:FRIEND]->(c12), (b2)-[:FRIEND]->(c21), (b2)-[:FRIEND]->(c22), (b3)-[:FRIEND]->(c31), (b3)-[:FRIEND]->(c32), (b4)-[:FRIEND]->(c41), (b4)-[:FRIEND]->(c42) CREATE (b1)-[:FRIEND]->(b2), (b2)-[:FRIEND]->(b3), (b3)-[:FRIEND]->(b4), (b4)-[:FRIEND]->(b1); 12:03:14.204 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.addV('A').as('a').property('name', 'a').addV('X').as('b1').property('name', 'b1').addV('X').as('b2').property('name', 'b2').addV('X').as('b3').property('name', 'b3').addV('X').as('b4').property('name', 'b4').addV('X').as('c11').property('name', 'c11').addV('Y').as('c12').property('name', 'c12').addV('X').as('c21').property('name', 'c21').addV('Y').as('c22').property('name', 'c22').addV('X').as('c31').property('name', 'c31').addV('Y').as('c32').property('name', 'c32').addV('X').as('c41').property('name', 'c41').addV('Y').as('c42').property('name', 'c42').addE('KNOWS').from('a').to('b1').addE('KNOWS').from('a').to('b2').addE('FOLLOWS').from('a').to('b3').addE('FOLLOWS').from('a').to('b4').addE('FRIEND').from('b1').to('c11').addE('FRIEND').from('b1').to('c12').addE('FRIEND').from('b2').to('c21').addE('FRIEND').from('b2').to('c22').addE('FRIEND').from('b3').to('c31').addE('FRIEND').from('b3').to('c32').addE('FRIEND').from('b4').to('c41').addE('FRIEND').from('b4').to('c42').addE('FRIEND').from('b1').to('b2').addE('FRIEND').from('b2').to('b3').addE('FRIEND').from('b3').to('b4').addE('FRIEND').from('b4').to('b1').barrier().limit(0)

When executing query: 0.014
MATCH (a:A)-[:KNOWS]->(b:X)-->(c:Y)
OPTIONAL MATCH (a)-[r:KNOWS]->(c)
WITH c WHERE r IS NOT NULL
RETURN c.name

12:03:14.241 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH (a:A)-[:KNOWS]->(b:X)-->(c:Y) OPTIONAL MATCH (a)-[r:KNOWS]->(c) WITH c WHERE r IS NOT NULL RETURN c.name 12:03:14.248 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().as('a').hasLabel('A').outE('KNOWS').as(' UNNAMED12').inV().hasLabel('X').outE().as(' UNNAMED28').inV().as('c').hasLabel('Y').where(__.select(' UNNAMED12').where(neq(' UNNAMED28'))).coalesce(__.select('a').outE('KNOWS').as('r').inV().as(' GENERATED5').where(__.select(' GENERATED5').where(eq('c'))).select('a', 'r', 'c'), __.constant(' cypher.null').as(' GENERATED6').as('r').as(' GENERATED7').select(' GENERATED6', 'r', ' GENERATED7')).select('r').as('r').select('r', 'c').project('r', 'c').by(__.select('r')).by(__.select('c')).as(' GENERATED11').select('r').as('r').select(' GENERATED11').select('c').as('c').where(__.select('r').is(neq(' cypher.null'))).select('c', 'r').project('c', ' FRESHID85').by(__.select('c')).by(__.select('r').choose(__.is(neq(' cypher.null')), __.constant(true), __.constant(false))).as(' GENERATED14').select('c').as('c').select(' GENERATED14').select(' FRESHID85').as(' FRESHID85').select('c', ' FRESHID85').project('c', ' FRESHID85').by(__.select('c')).by(__.select(' FRESHID85')).as(' GENERATED16').select('c').as('c').select(' GENERATED16').select(' FRESHID85').as(' FRESHID85').select('c').as('c').project('c.name').by(__.choose(neq(' cypher.null'), __.coalesce(__.values('name'), __.constant(' cypher.null')), __.constant(' cypher.null')))

Then the result should be: 0.000
c.name
And no side effects 0.014

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

0.053
Given the binary-tree-2 graph 0.026

12:03:14.271 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: CREATE (a:A {name: 'a'}), (b1:X {name: 'b1'}), (b2:X {name: 'b2'}), (b3:X {name: 'b3'}), (b4:X {name: 'b4'}), (c11:X {name: 'c11'}), (c12:Y {name: 'c12'}), (c21:X {name: 'c21'}), (c22:Y {name: 'c22'}), (c31:X {name: 'c31'}), (c32:Y {name: 'c32'}), (c41:X {name: 'c41'}), (c42:Y {name: 'c42'}) CREATE (a)-[:KNOWS]->(b1), (a)-[:KNOWS]->(b2), (a)-[:FOLLOWS]->(b3), (a)-[:FOLLOWS]->(b4) CREATE (b1)-[:FRIEND]->(c11), (b1)-[:FRIEND]->(c12), (b2)-[:FRIEND]->(c21), (b2)-[:FRIEND]->(c22), (b3)-[:FRIEND]->(c31), (b3)-[:FRIEND]->(c32), (b4)-[:FRIEND]->(c41), (b4)-[:FRIEND]->(c42) CREATE (b1)-[:FRIEND]->(b2), (b2)-[:FRIEND]->(b3), (b3)-[:FRIEND]->(b4), (b4)-[:FRIEND]->(b1); 12:03:14.283 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.addV('A').as('a').property('name', 'a').addV('X').as('b1').property('name', 'b1').addV('X').as('b2').property('name', 'b2').addV('X').as('b3').property('name', 'b3').addV('X').as('b4').property('name', 'b4').addV('X').as('c11').property('name', 'c11').addV('Y').as('c12').property('name', 'c12').addV('X').as('c21').property('name', 'c21').addV('Y').as('c22').property('name', 'c22').addV('X').as('c31').property('name', 'c31').addV('Y').as('c32').property('name', 'c32').addV('X').as('c41').property('name', 'c41').addV('Y').as('c42').property('name', 'c42').addE('KNOWS').from('a').to('b1').addE('KNOWS').from('a').to('b2').addE('FOLLOWS').from('a').to('b3').addE('FOLLOWS').from('a').to('b4').addE('FRIEND').from('b1').to('c11').addE('FRIEND').from('b1').to('c12').addE('FRIEND').from('b2').to('c21').addE('FRIEND').from('b2').to('c22').addE('FRIEND').from('b3').to('c31').addE('FRIEND').from('b3').to('c32').addE('FRIEND').from('b4').to('c41').addE('FRIEND').from('b4').to('c42').addE('FRIEND').from('b1').to('b2').addE('FRIEND').from('b2').to('b3').addE('FRIEND').from('b3').to('b4').addE('FRIEND').from('b4').to('b1').barrier().limit(0)

When executing query: 0.011
MATCH (a:A)-[:KNOWS]->(b)-->(c:X)
OPTIONAL MATCH (a)-[r:KNOWS]->(c)
WITH c WHERE r IS NOT NULL
RETURN c.name

12:03:14.317 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH (a:A)-[:KNOWS]->(b)-->(c:X) OPTIONAL MATCH (a)-[r:KNOWS]->(c) WITH c WHERE r IS NOT NULL RETURN c.name 12:03:14.324 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().as('a').hasLabel('A').outE('KNOWS').as(' UNNAMED12').inV().as(' cypher.path.start.GENERATED2').outE().as(' UNNAMED26').inV().as('c').hasLabel('X').where(__.select(' UNNAMED12').where(neq(' UNNAMED26'))).coalesce(__.select('a').outE('KNOWS').as('r').inV().as(' GENERATED5').where(__.select(' GENERATED5').where(eq('c'))).select('a', 'r', 'c'), __.constant(' cypher.null').as(' GENERATED6').as('r').as(' GENERATED7').select(' GENERATED6', 'r', ' GENERATED7')).select('r').as('r').select('r', 'c').project('r', 'c').by(__.select('r')).by(__.select('c')).as(' GENERATED11').select('r').as('r').select(' GENERATED11').select('c').as('c').where(__.select('r').is(neq(' cypher.null'))).select('c', 'r').project('c', ' FRESHID83').by(__.select('c')).by(__.select('r').choose(__.is(neq(' cypher.null')), __.constant(true), __.constant(false))).as(' GENERATED14').select('c').as('c').select(' GENERATED14').select(' FRESHID83').as(' FRESHID83').select('c', ' FRESHID83').project('c', ' FRESHID83').by(__.select('c')).by(__.select(' FRESHID83')).as(' GENERATED16').select('c').as('c').select(' GENERATED16').select(' FRESHID83').as(' FRESHID83').select('c').as('c').project('c.name').by(__.choose(neq(' cypher.null'), __.coalesce(__.values('name'), __.constant(' cypher.null')), __.constant(' cypher.null')))

Then the result should be: 0.000
c.name
'b2'
And no side effects 0.015

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

0.049
Given the binary-tree-2 graph 0.024

12:03:14.345 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: CREATE (a:A {name: 'a'}), (b1:X {name: 'b1'}), (b2:X {name: 'b2'}), (b3:X {name: 'b3'}), (b4:X {name: 'b4'}), (c11:X {name: 'c11'}), (c12:Y {name: 'c12'}), (c21:X {name: 'c21'}), (c22:Y {name: 'c22'}), (c31:X {name: 'c31'}), (c32:Y {name: 'c32'}), (c41:X {name: 'c41'}), (c42:Y {name: 'c42'}) CREATE (a)-[:KNOWS]->(b1), (a)-[:KNOWS]->(b2), (a)-[:FOLLOWS]->(b3), (a)-[:FOLLOWS]->(b4) CREATE (b1)-[:FRIEND]->(c11), (b1)-[:FRIEND]->(c12), (b2)-[:FRIEND]->(c21), (b2)-[:FRIEND]->(c22), (b3)-[:FRIEND]->(c31), (b3)-[:FRIEND]->(c32), (b4)-[:FRIEND]->(c41), (b4)-[:FRIEND]->(c42) CREATE (b1)-[:FRIEND]->(b2), (b2)-[:FRIEND]->(b3), (b3)-[:FRIEND]->(b4), (b4)-[:FRIEND]->(b1); 12:03:14.356 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.addV('A').as('a').property('name', 'a').addV('X').as('b1').property('name', 'b1').addV('X').as('b2').property('name', 'b2').addV('X').as('b3').property('name', 'b3').addV('X').as('b4').property('name', 'b4').addV('X').as('c11').property('name', 'c11').addV('Y').as('c12').property('name', 'c12').addV('X').as('c21').property('name', 'c21').addV('Y').as('c22').property('name', 'c22').addV('X').as('c31').property('name', 'c31').addV('Y').as('c32').property('name', 'c32').addV('X').as('c41').property('name', 'c41').addV('Y').as('c42').property('name', 'c42').addE('KNOWS').from('a').to('b1').addE('KNOWS').from('a').to('b2').addE('FOLLOWS').from('a').to('b3').addE('FOLLOWS').from('a').to('b4').addE('FRIEND').from('b1').to('c11').addE('FRIEND').from('b1').to('c12').addE('FRIEND').from('b2').to('c21').addE('FRIEND').from('b2').to('c22').addE('FRIEND').from('b3').to('c31').addE('FRIEND').from('b3').to('c32').addE('FRIEND').from('b4').to('c41').addE('FRIEND').from('b4').to('c42').addE('FRIEND').from('b1').to('b2').addE('FRIEND').from('b2').to('b3').addE('FRIEND').from('b3').to('b4').addE('FRIEND').from('b4').to('b1').barrier().limit(0)

When executing query: 0.009
MATCH (a:A)-[:KNOWS]->(b:X)-->(c)
OPTIONAL MATCH (a)-[r:KNOWS]->(c)
WITH c WHERE r IS NOT NULL
RETURN c.name

12:03:14.383 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Cypher: MATCH (a:A)-[:KNOWS]->(b:X)-->(c) OPTIONAL MATCH (a)-[r:KNOWS]->(c) WITH c WHERE r IS NOT NULL RETURN c.name 12:03:14.390 [gremlin-server-worker-1] INFO o.o.g.s.op.cypher.CypherOpProcessor - Gremlin: g.V().as('a').hasLabel('A').outE('KNOWS').as(' UNNAMED12').inV().hasLabel('X').outE().as(' UNNAMED28').inV().as('c').where(__.select(' UNNAMED12').where(neq(' UNNAMED28'))).coalesce(__.select('a').outE('KNOWS').as('r').inV().as(' GENERATED5').where(__.select(' GENERATED5').where(eq('c'))).select('a', 'r', 'c'), __.constant(' cypher.null').as(' GENERATED6').as('r').as(' GENERATED7').select(' GENERATED6', 'r', ' GENERATED7')).select('r').as('r').select('r', 'c').project('r', 'c').by(__.select('r')).by(__.select('c')).as(' GENERATED11').select('r').as('r').select(' GENERATED11').select('c').as('c').where(__.select('r').is(neq(' cypher.null'))).select('c', 'r').project('c', ' FRESHID83').by(__.select('c')).by(__.select('r').choose(__.is(neq(' cypher.null')), __.constant(true), __.constant(false))).as(' GENERATED14').select('c').as('c').select(' GENERATED14').select(' FRESHID83').as(' FRESHID83').select('c', ' FRESHID83').project('c', ' FRESHID83').by(__.select('c')).by(__.select(' FRESHID83')).as(' GENERATED16').select('c').as('c').select(' GENERATED16').select(' FRESHID83').as(' FRESHID83').select('c').as('c').project('c.name').by(__.choose(neq(' cypher.null'), __.coalesce(__.values('name'), __.constant(' cypher.null')), __.constant(' cypher.null')))

Then the result should be: 0.000
c.name
'b2'
And no side effects 0.015

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