Experience Report for Feature Request
What you wanted to do
Use expand() to expand non-uid predicates only. I feel like if you use expand() with no next level (curly braces) then it should only expand non-uid predicates.
<name>: string .
<edgeInMyType>: [uid] .
type mytype {
name
edgeInMyType
}
...
q(func: type(mytype)){
expand(mytype)
edgeInMyType { ## error repeated subgraph while using expand
uid
}
}
What you actually did
Broke my type into two sub types, one for non-uids and one for uids
<name>: string .
<edgeInMyType>: [uid] .
type mytype.scalars {
name
}
type mytype.edges {
edgeInMyType
}
...
q(func: type(mytype)){
expand(mytype.scalars)
edgeInMyType {
uid
}
}
Why that wasn’t great, with examples
Ok its probably obvious it would be better to just use one type instead of front the type with two types. With the above I can also use expand twice once with each sub-type with good effect:
q(func: type(mytype)){
expand(mytype.scalars)
expand(mytype.edges) {
uid
}
}
Any external references to support your case
Any reason the expand function expands to edges without actually selecting from them at all? Maybe a use case I am not thinking about?