2013-04-15 2 views
2

У меня есть простой следующий график:
http://console.neo4j.org/?id=v0cvwnCypher UNION запрос

И я удивляюсь, почему следующий запрос:

START n=node(2) 
match n-[:KNOWS]-node 
return node.name as name 
UNION 
START n=node(2) 
match n-[:ACTS_IN]-node 
return node.name as name 

бросает исключение:

java.lang.AssertionError: assertion failed: Can't profile the same pipe twice 
at scala.Predef$.assert(Predef.scala:179) 
at org.neo4j.cypher.internal.profiler.Profiler.decorate(Profiler.scala:47) 
at org.neo4j.cypher.internal.pipes.Pipe$class.createResults(Pipe.scala:35) 
at org.neo4j.cypher.internal.pipes.NullPipe$.createResults(Pipe.scala:47) 
at org.neo4j.cypher.internal.pipes.PipeWithSource.createResults(Pipe.scala:61) 
at org.neo4j.cypher.internal.pipes.PipeWithSource.createResults(Pipe.scala:61) 
at org.neo4j.cypher.internal.pipes.PipeWithSource.createResults(Pipe.scala:61) 
at org.neo4j.cypher.internal.pipes.UnionIterator.loadNextIterator$1(UnionIterator.scala:60) 
at org.neo4j.cypher.internal.pipes.UnionIterator.step$1(UnionIterator.scala:68) 
at org.neo4j.cypher.internal.pipes.UnionIterator.stepIfNeccessary(UnionIterato 

Пара вопросов относительно UNION:

Возможно ли выполнить еще одно заключительное предложение соответствия для всех данных, которые накапливались в результирующем наборе в результате UNION в предыдущих подзапросах?

Возможно ли выполнить заказ по этим данным?

Спасибо.

+0

Хотя это не напрямую ответить на ваш вопрос, я просто хотел бы отметить, что ваш запрос может быть переписан без 'UNION'. Просто используйте только первую половину запроса и используйте это для своего MATCH: 'n - [: KNOWS | ACTS_IN] -node' – ean5533

+0

Да, я знаю простой пример использования, чтобы попробовать UNION .. 10x в любом случае –

ответ

Смежные вопросы