Describe the bug
A relationship created earlier in the same Cypher query is not matched as expected after a WITH and UNWIND pipeline.
The query creates one relationship, expands two identical lookup items with UNWIND, and attempts to match that relationship once for each input row. The resulting relationship count should be 2, but the query evaluates the condition as false and returns "FAIL".
How are you accessing AGE (Command line, driver, etc.)?
- Command line using interactive
psql
- Executed through
docker exec
docker exec -it test psql -U postgres -d postgres
What data setup do we need to do?
Start Apache AGE:
docker run --rm --name test -e POSTGRES_PASSWORD=agepass -p 5432:5432 apache/age:latest
Connect using interactive psql:
docker exec -it test psql -U postgres -d postgres
Load AGE, configure the search path, and create the graph:
LOAD 'age';
SET search_path = ag_catalog, public;
SELECT create_graph('test');
No separate graph data setup is required because the affected query creates the nodes and relationship itself.
What is the necessary configuration info needed?
- Docker image:
apache/age:latest
- PostgreSQL:
18.1
- Apache AGE:
1.7.0
- AGE extension installed by the Docker image
search_path set to ag_catalog, public
- Operating system: WSL2, Ubuntu 24.04.1 LTS
- Installation method: Docker
What is the command that caused the error?
SELECT *
FROM cypher('test', $cypher$
CREATE (a:N)-[:R {id:1}]->(b:N)
WITH [{type:'R', id:1}, {type:'R', id:1}] AS items
UNWIND items AS item
MATCH ()-[r:R]->()
WHERE r.id = item.id
RETURN CASE
WHEN count(r) = 2 THEN 'PASS'
ELSE 'FAIL'
END AS value
$cypher$) AS (value agtype);
Actual result:
value
--------
"FAIL"
(1 row)
Expected behavior
UNWIND should produce two input rows.
For each input row, the relationship created earlier in the same query should match r.id = item.id. The resulting count(r) should therefore be 2, and the query should return:
value
--------
"PASS"
(1 row)
Environment (please complete the following information):
- Apache AGE version:
1.7.0
- PostgreSQL version:
18.1
- Docker image:
apache/age:latest
- Operating system: WSL2, Ubuntu 24.04.1 LTS
- Access method: interactive
psql through docker exec
Additional context
The behavior was reproduced twice in clean Docker containers.
Describe the bug
A relationship created earlier in the same Cypher query is not matched as expected after a
WITHandUNWINDpipeline.The query creates one relationship, expands two identical lookup items with
UNWIND, and attempts to match that relationship once for each input row. The resulting relationship count should be2, but the query evaluates the condition as false and returns"FAIL".How are you accessing AGE (Command line, driver, etc.)?
psqldocker execWhat data setup do we need to do?
Start Apache AGE:
Connect using interactive
psql:Load AGE, configure the search path, and create the graph:
No separate graph data setup is required because the affected query creates the nodes and relationship itself.
What is the necessary configuration info needed?
apache/age:latest18.11.7.0search_pathset toag_catalog, publicWhat is the command that caused the error?
Actual result:
Expected behavior
UNWINDshould produce two input rows.For each input row, the relationship created earlier in the same query should match
r.id = item.id. The resultingcount(r)should therefore be2, and the query should return:Environment (please complete the following information):
1.7.018.1apache/age:latestpsqlthroughdocker execAdditional context
The behavior was reproduced twice in clean Docker containers.