Экзистенциальный подзапрос и OR в предложении WHERE вызывают UnknownError - PullRequest
1 голос
/ 14 марта 2020

UnknownError возникает, когда я использую EXISTS {...} в сочетании с OR в предложении WHERE. Это ошибка или я что-то упустил?

Создать образцы узлов

CREATE (a:A { uuid:'uuid1', foo:true })-[:KNOWS]->(b:B { uuid:'uuid2' })

Пример запроса

MATCH (a:A { uuid:'uuid1' }),
(b:B { uuid:'uuid2' })
WHERE a.foo = TRUE
OR EXISTS {
  MATCH (a)-[:KNOWS]->(b)
}
RETURN a

Ошибка

Neo.DatabaseError.General.UnknownError
There should be at least one pattern expression

Ответы [ 2 ]

0 голосов
/ 26 марта 2020

Это действительно была ошибка / упущение в реализации экзистенциального подзапроса Neo4j. Теперь я реализовал исправление Исправление ошибки с экзистенциальными подзапросами и ИЛИ , которые будут включены в предстоящий выпуск 4.0.

0 голосов
/ 14 марта 2020

Как указывает @InverseFalcon, это похоже на ошибку (или, по крайней мере, недокументированный экзистенциальный подзапрос ограничение).

В качестве обходного пути, поскольку в вашем подзапросе нет предложения WHERE , вы можете просто использовать функцию EXISTS :

MATCH (a:A {uuid: 'uuid1'}), (b:B {uuid: 'uuid2'})
WHERE a.foo OR EXISTS((a)-[:KNOWS]->(b))
RETURN a
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...