diff --git a/query/gremlin/build_iterator.go b/query/gremlin/build_iterator.go index 938c428..1fd3b40 100644 --- a/query/gremlin/build_iterator.go +++ b/query/gremlin/build_iterator.go @@ -145,7 +145,8 @@ func buildInOutPredicateIterator(obj *otto.Object, qs graph.QuadStore, base grap dir = quad.Object } lto := iterator.NewLinksTo(qs, base, dir) - return iterator.NewHasA(qs, lto, quad.Predicate) + hasa := iterator.NewHasA(qs, lto, quad.Predicate) + return iterator.NewUnique(hasa) } func buildIteratorTreeHelper(obj *otto.Object, qs graph.QuadStore, base graph.Iterator) graph.Iterator { diff --git a/query/gremlin/gremlin_test.go b/query/gremlin/gremlin_test.go index 74164a7..5c86b8f 100644 --- a/query/gremlin/gremlin_test.go +++ b/query/gremlin/gremlin_test.go @@ -251,6 +251,13 @@ var testQueries = []struct { expect: []string{"bob", "greg"}, }, { + message: "list all bob's incoming predicates", + query: ` + g.V("bob").InPredicates().All() + `, + expect: []string{"follows"}, + }, + { message: "list all in predicates", query: ` g.V().InPredicates().All()