【LOOKUP语法错误】 检索边的出入点同时作为遍历出发点

如下

LOOKUP ON t1
yield dst(edge) as dst, src(edge) as src
| go from $-.src,$-.dst over * yield $$ as dst

异常日志:
-1004:SyntaxError: syntax error near ld dst(e’`

目前情况仅支持以下语句

LOOKUP ON t1
yield dst(edge) as dst
| go from $-.dst over * yield $$ as dst
LOOKUP ON t1
yield src(edge) as src
| go from $-.src over * yield $$ as dst

go from $-.src,$-.dst 这种语法(from 子句里边多个 $-)是不支持的,原因是 $-.src 这种的是列语义,单个 $- 实现层通过 join 来建立对应关系。而 from 子句中多个 列语义可能会导致语法歧义,比如:

lookup on E1 yield src(edge) as src, dst(edge) as dst |
go from $-.src, $-.dst over E2 yield src(edge), dst(edge)

这种语义很难理解,所以我们只是简单地禁用这种语法。
当然,go from "1","2" over ... 这种语法不会有歧义,所以是支持的。

那这种case有别的解决方案么?

lookup on E1
yield [dst(edge),src(edge)] as id
| go from $-.id over * yield $$ as dst

这种情况会抛出异常:
-1009:SemanticError: $-.id’, the srcs should be type of FIXED_STRING, but wasLIST'

(lookup on E1 yield src(edge) as id union lookup on E1 yield dst(edge) as id) 
| go from $-.id over * yield $$ as dst
1 个赞

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。