-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Graph return duplicate result #4929
Comments
Studying this bug. The With this bug to be fixed, the documentation needs to be clarified. Reference: https://en.wikipedia.org/wiki/Path_(graph_theory) |
Can be reproduced in the nba dataset with the above query. |
Bug reason: A single self-reflective edge is treated as two distinct edges in the traverse operator: one outbound and one inbound, but they are in fact the same edge. It's different to a cycle between two vertices, in which the two edges are distinct edges, because they have different src and dst vertices. |
Fix: The storage side shall not return two versions of the same self-reflective edge. This could avoids increasing computation overheads needed to deduplicate edges and also reduce the network traffic. |
In our syntax, |
@whitewum, WDYT? |
This is a P2 bug. |
Please check the FAQ documentation before raising an issue
Describe the bug (required)
Query result on nebula:
note that row 2 is duplicate to row 1, row 4 is duplicate to row 3.
Same query on Neo4j(and same dataset) return exactly two rows as expected:
$ MATCH p = (n0)-[e1]->(n1)-[e2]-(n0) WHERE n0.id = 7 and n1.id = 7 return e1, e2 ╒══════════════════════════════════════════════════════════════════════╤══════════════════════════════════════════════════════════════════════╕ │"e1" │"e2" │ ╞══════════════════════════════════════════════════════════════════════╪══════════════════════════════════════════════════════════════════════╡ │{"edgeProp_0_6":175,"edgeProp_0_2":0.311973,"edgeProp_0_3":"Joel Embii│{"edgeProp_1_5":true,"edgeProp_1_1":"Dwyane Wade","edgeProp_1_2":0.454│ │d","edgeProp_0_4":0.179834,"edgeProp_0_5":88,"edgeProp_0_0":true,"edge│965,"edgeProp_1_3":115,"edgeProp_1_4":"Danny Green","edgeProp_1_0":fal│ │Prop_0_1":false} │se} │ ├──────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────┤ │{"edgeProp_1_5":true,"edgeProp_1_1":"Dwyane Wade","edgeProp_1_2":0.454│{"edgeProp_0_6":175,"edgeProp_0_2":0.311973,"edgeProp_0_3":"Joel Embii│ │965,"edgeProp_1_3":115,"edgeProp_1_4":"Danny Green","edgeProp_1_0":fal│d","edgeProp_0_4":0.179834,"edgeProp_0_5":88,"edgeProp_0_0":true,"edge│ │se} │Prop_0_1":false} │ └──────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────┘
and these two edges are further verified by the visualization view rendered by Neo4j(vote to Neo4j):
Your Environments (required)
uname -a
g++ --version
orclang++ --version
lscpu
a3ffc7d8
) 5dd2054How To Reproduce(required)
Steps to reproduce the behavior:
Expected behavior
Additional context
The text was updated successfully, but these errors were encountered: