Override/remove side effect keys

98 views
Skip to first unread message

Sam Rosen

unread,
Jun 7, 2018, 6:01:35 PM6/7/18
to Gremlin-users
How can I use the SAME side effect key and override the previous one? Is there a way to clear side effects keys?

Starter code:


graph
= TinkerFactory.createModern();
g
= graph.traversal()


gremlin
> g.V().limit(3).aggregate("list").select("list")
==>[v[1],v[2],v[3]]
==>[v[1],v[2],v[3]]
==>[v[1],v[2],v[3]]


g
.V().limit(3).aggregate("list").V().dedup().tail(3).aggregate("list").select("list")

==>[v[1],v[2],v[3],v[4],v[5],v[6]]
==>[v[1],v[2],v[3],v[4],v[5],v[6]]
==>[v[1],v[2],v[3],v[4],v[5],v[6]]


// DESIRED OUTPUT: [v[4],v[5],v[6]] ...

// Or a way to clear side effect keys?
gremlin
> g.V().limit(3).aggregate("list").clear("list").select("list")
==>

Thanks,

Sam

Daniel Kuppitz

unread,
Jun 7, 2018, 10:15:34 PM6/7/18
to gremli...@googlegroups.com
You can only clear side effects using a lambda:

gremlin> g.V().limit(3).aggregate("list").sideEffect {it.getSideEffects().get("list").clear()}.V().dedup().tail(3).aggregate("list").select("list")
==>[v[4],v[5],v[6]]
==>[v[4],v[5],v[6]]
==>[v[4],v[5],v[6]]

However, most times that's not even necessary and you can write your query in a way that you don't need to use or reuse side effects. Can you talk more about your use case?

Cheers,
Daniel


--
You received this message because you are subscribed to the Google Groups "Gremlin-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gremlin-users+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gremlin-users/b76caef7-d300-4096-a981-911d21d9384d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages