Skip to content

AGE returns incorrect error message for EXISTS subquery outer variable reference #2263

Description

@zihaozeng0021

Configuration

AGE Version: apache/age:latest (pulled 2025-12-07)

Operating System: WSL2 – Ubuntu 24.04.1 LTS

Installation Method: Docker


Steps to reproduce

  1. Start AGE via Docker
docker run \
--name age \
-p 5455:5432 \
-e POSTGRES_USER=postgresUser \
-e POSTGRES_PASSWORD=postgresPW \
-e POSTGRES_DB=postgresDB \
-d \
apache/age:latest
  1. Connect with psql
PGPASSWORD='postgresPW' psql -h localhost -p 5455 -U postgresUser -d postgresDB
  1. Run the following query
CREATE EXTENSION IF NOT EXISTS age;
LOAD 'age';
SET search_path = ag_catalog, "$user", public;
SELECT * FROM ag_catalog.create_graph('test');
SELECT *
FROM cypher('test', $$
CREATE a=()-[:T]->(),
p=({k:exists{return a}})-[:T]->()
RETURN 1
$$) AS (one agtype);

Expected behaviour

One of the following:

  • The query succeeds
  • A semantic/feature-limitation error, not an internal/planner-style failure.

Actual behaviour

The query fails with:

ERROR: could not find rte for a
LINE 4: p=({k:exists{return a}})-[:T]->()
^

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions