Триггер в фазе «после» не работает с APO C в Neo4j - PullRequest
0 голосов
/ 20 января 2020

Я пытаюсь создать триггер с APO C, который срабатывает после запроса (фаза: после). Я пытаюсь сделать это, следуя точным инструкциям, приведенным в первом примере здесь . Тем не менее, запрос никогда не завершается.

Я работаю с fre sh сборкой neo4j 3.5.4 и только установил APO C в качестве плагина, я не изменил ни одной конфигурации, кроме добавления apoc.trigger.enabled=true.

Точнее, я выполняю следующие шаги в браузере на localhost:7474:

Создание данных

CREATE (d:Person {name:'Daniel'})
CREATE (l:Person {name:'Mary'})
CREATE (t:Person {name:'Tom'})
CREATE (j:Person {name:'John'})
CREATE (m:Person {name:'Michael'})
CREATE (a:Person {name:'Anne'})
CREATE (l)-[:DAUGHTER_OF]->(d)
CREATE (t)-[:SON_OF]->(d)
CREATE (t)-[:BROTHER]->(j)
CREATE (a)-[:WIFE_OF]->(d)
CREATE (d)-[:SON_OF]->(m)
CREATE (j)-[:SON_OF]->(d)

Создание триггера

CALL apoc.trigger.add('setAllConnectedNodes','UNWIND apoc.trigger.propertiesByKey({assignedNodeProperties},"surname") as prop
WITH prop.node as n
MATCH(n)-[]-(a)
SET a.surname = n.surname', {phase:'after'});

Выполнить запрос, который должен вызвать вышеуказанный триггер

MATCH (d:Person {name:'Daniel'})
SET d.surname = 'William'

Этот последний шаг приведет к тому, что запрос никогда не завершится, он даст мне счетчик, который никогда не будет листья. Единственный способ остановиться - убить запрос.

Что здесь происходит?

...