[ https://issues.apache.org/jira/browse/TINKERPOP-2220?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16842565#comment-16842565 ]
Daniel Kuppitz commented on TINKERPOP-2220: ------------------------------------------- Just had another idea on how to explain it. Instead of {{dedup()}} let's just use a filter lambda that follows the same rules (and prints some debug messages): {code} gremlin> dedupLambda = { ......1> element = it.get() ......2> step = it.getStepId() ......3> if ((m = (step =~ /[0-9]+\.[0-9]+\.[0-9]+\(\)/)).find()) { ......4> step = m.group() ......5> } ......6> seen = memory[step]?.contains(element) ......7> memory[step] = (memory[step] ?: []) + [element] ......8> println "${element} seen at step ${step}: ${seen ? 'yes (filter it)' : 'no (let it pass)'}" ......9> return !seen .....10> } ==>groovysh_evaluate$_run_closure1@67514bdd gremlin> gremlin> memory = [:] ; g.V().filter(dedupLambda).filter(dedupLambda).count() v[1] seen at step 1.0.0(): no (let it pass) v[1] seen at step 2.0.0(): no (let it pass) v[2] seen at step 1.0.0(): no (let it pass) v[2] seen at step 2.0.0(): no (let it pass) v[3] seen at step 1.0.0(): no (let it pass) v[3] seen at step 2.0.0(): no (let it pass) v[4] seen at step 1.0.0(): no (let it pass) v[4] seen at step 2.0.0(): no (let it pass) v[5] seen at step 1.0.0(): no (let it pass) v[5] seen at step 2.0.0(): no (let it pass) v[6] seen at step 1.0.0(): no (let it pass) v[6] seen at step 2.0.0(): no (let it pass) ==>6 gremlin> memory = [:] ; g.V().repeat(filter(dedupLambda)).times(2).count() v[1] seen at step 1.0.0(): no (let it pass) v[1] seen at step 1.0.0(): yes (filter it) v[2] seen at step 1.0.0(): no (let it pass) v[2] seen at step 1.0.0(): yes (filter it) v[3] seen at step 1.0.0(): no (let it pass) v[3] seen at step 1.0.0(): yes (filter it) v[4] seen at step 1.0.0(): no (let it pass) v[4] seen at step 1.0.0(): yes (filter it) v[5] seen at step 1.0.0(): no (let it pass) v[5] seen at step 1.0.0(): yes (filter it) v[6] seen at step 1.0.0(): no (let it pass) v[6] seen at step 1.0.0(): yes (filter it) ==>0 {code} > Dedup inside Repeat Produces 0 results > -------------------------------------- > > Key: TINKERPOP-2220 > URL: https://issues.apache.org/jira/browse/TINKERPOP-2220 > Project: TinkerPop > Issue Type: Bug > Components: process > Affects Versions: 3.3.0 > Reporter: Rahul Chander > Priority: Major > > Testing against the Tinkerpop Modern graph dataset, I ran this query: > {code:java} > g.V().repeat(__.dedup()).times(2).count() > {code} > which should essentially be the same as running dedup twice. It produced 0 > results, while dedup twice produced the correct 6. > > > -- This message was sent by Atlassian JIRA (v7.6.3#76005)