neo4j.exceptions.CypherSyntaxError: {code: Neo.ClientError.Statement.SyntaxError} {message: The property existence syntax `... exists(variable.property)` is no longer supported. Please use `variable.property IS NOT NULL` instead.
Closed this issue · 1 comments
sm00v commented
Neo4j Version 1.5.8 (1.5.8.105)
Collected with bloodhound.py
AD-miner -c -cf My_Report -u neo4j -p password -b bolt://localhost:7687
Traceback (most recent call last):
File "/opt/homebrew/bin/AD-miner", line 8, in <module>
sys.exit(main())
^^^^^^
File "/opt/homebrew/lib/python3.12/site-packages/ad_miner/__main__.py", line 144, in main
extract_date, total_objects, number_relations, boolean_azure = pre_request(arguments)
^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/lib/python3.12/site-packages/ad_miner/sources/modules/neo4j_class.py", line 90, in pre_request
for record in tx.run(
^^^^^^^
File "/opt/homebrew/lib/python3.12/site-packages/neo4j/_sync/work/transaction.py", line 156, in run
result._tx_ready_run(query, parameters)
File "/opt/homebrew/lib/python3.12/site-packages/neo4j/_sync/work/result.py", line 120, in _tx_ready_run
self._run(query, parameters, None, None, None, None)
File "/opt/homebrew/lib/python3.12/site-packages/neo4j/_sync/work/result.py", line 166, in _run
self._attach()
File "/opt/homebrew/lib/python3.12/site-packages/neo4j/_sync/work/result.py", line 274, in _attach
self._connection.fetch_message()
File "/opt/homebrew/lib/python3.12/site-packages/neo4j/_sync/io/_common.py", line 180, in inner
func(*args, **kwargs)
File "/opt/homebrew/lib/python3.12/site-packages/neo4j/_sync/io/_bolt.py", line 658, in fetch_message
res = self._process_message(tag, fields)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/lib/python3.12/site-packages/neo4j/_sync/io/_bolt5.py", line 317, in _process_message
response.on_failure(summary_metadata or {})
File "/opt/homebrew/lib/python3.12/site-packages/neo4j/_sync/io/_common.py", line 247, in on_failure
raise Neo4jError.hydrate(**metadata)
neo4j.exceptions.CypherSyntaxError: {code: Neo.ClientError.Statement.SyntaxError} {message: The property existence syntax `... exists(variable.property)` is no longer supported. Please use `variable.property IS NOT NULL` instead. (line 1, column 17 (offset: 16))
"MATCH (n) WHERE EXISTS(n.tenantid) return n LIMIT 1"
^}
jmbesnard commented
Hi,
Bloodhound requires you to use Neo4j 4.x (and not 5.x). You are coming across this issue because the EXISTS() function no longer allows in 5.x to check if an attribute exists.