Мне было интересно, есть ли способ использовать более одного набора вершин в операторе SELECT. Я думаю, это должно быть возможно, потому что ... почему бы и нет?
Например, скажем, у нас есть этот базовый c запрос:
CREATE QUERY coolQuery(VERTEX<Foo> foo, String bar, String biz) FOR GRAPH cool_graph SYNTAX v2 {
f = {foo};
x = SELECT i
FROM SomeVertex:i -(PathType1>)- f
y = SELECT i
FROM x:i -(<PathType2)- BarVertex:br
WHERE br.id == bar;
z = SELECT i
FROM y:i -(PathType3>.PathType4>)- BizVertex:bz
WHERE bz.id == biz;
PRINT z;
}
Теперь, это все хорошо и прекрасно, но что если я знаю другие вершины, чьи идентификаторы - bar и biz? Могу ли я использовать более одного известного набора вершин в операторе SELECT? Цель здесь - как можно быстрее достичь окончательного набора SomeVertex, используя индексированные значения идентификатора вершины.
Это то, что я думаю:
CREATE QUERY coolQuery2(VERTEX<FooVertex> foo, VERTEX<BarVertex> bar, Vertex<BizVertex> biz) FOR GRAPH cool_graph SYNTAX v2 {
f = {foo};
br = {bar};
bz = {biz};
x = SELECT i
FROM SomeVertex:i -(PathType1>)- f
y = SELECT i
FROM x:i -(<PathType2)- br
z = SELECT i
FROM y:i -(PathType3>.PathType4>)- bz
PRINT z;
}
Я получаю синтаксические ошибки с этим, и я не могу найти ничего в документах, которые делают подобные вещи, где более чем один известный набор вершин используется в операторе SELECT.