When you put the reg variable declaration in a separate query block, it works.
Data:
<_:reg1> <name> "Reg1" .
<_:reg2> <name> "Reg2" .
<_:node1> <name> "Node1" .
<_:node2> <name> "Node2" .
<_:node3> <name> "Node3" .
<_:node1> <child> <_:node2> .
<_:node1> <child> <_:node3> .
<_:node1> <reg> <_:reg1>.
<_:node2> <reg> <_:reg1>.
<_:node3> <reg> <_:reg2>.
Query:
{
var(func: has(name)) @filter(eq(name, "Node1")) {
name
R as reg # works
}
q(func: has(name)) @filter(eq(name, "Node1")) @cascade {
name
#R as reg # doesn't work
child {
name
reg @filter(uid(R))
}
}
}
I think both versions should work tho.