multi-row `CREATE` and `DETACH DELETE` reuse a deleted vertex binding
Los mantenedores suelen responder en 3 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 53/100
Línea de trabajo
Start by tracing how the Cypher executor processes the multi-row UNWIND, CREATE, and DETACH DELETE clauses, using the reproduction query and the collect/UNWIND boundary controls to narrow the failure. Find the vertex binding and deletion handling in the relevant executor code, then run the reproduction on a fresh graph. Done means both input rows return and the query no longer reports that vertex a was deleted.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Environment
- Apache AGE
1.8.0 - PostgreSQL
18.6 - Docker image:
apache/age:release_PG18_1.8.0
Reproduction
Replace age_issue28_REPLACE_WITH_RANDOM_SUFFIX with a fresh, unique graph name,
then run the setup and query on that empty graph:
LOAD 'age';
SET search_path = ag_catalog, public;
SELECT ag_catalog.create_graph('age_issue28_REPLACE_WITH_RANDOM_SUFFIX');
SELECT *
FROM ag_catalog.cypher('age_issue28_REPLACE_WITH_RANDOM_SUFFIX', $$
CREATE (a {id: 1})-[:R]->(b {id: 2})
$$) AS (v agtype);
SELECT *
FROM ag_catalog.cypher('age_issue28_REPLACE_WITH_RANDOM_SUFFIX', $$
MATCH (a {id: 1})-[:R]->(b {id: 2})
UNWIND [1, 2] AS i
CREATE (a)-[:S {i: i}]->()
DETACH DELETE a, b
RETURN i
$$) AS (i agtype);
Expected behavior
Both input rows reach CREATE while a and b are still bound and present.
The later DETACH DELETE removes them, and the query returns 1 and 2.
Actual behavior
AGE reports:
ERROR: vertex assigned to variable a was deleted
The PostgreSQL backend remains available; a subsequent SELECT 1 succeeds.
Controls
- Replacing
UNWIND [1, 2]withUNWIND [1]succeeds and returns1. - Removing
DETACH DELETE a, bsucceeds and returns1and2. - A row-preserving
collect/UNWINDboundary beforeCREATEdoes not avoid the error. - The same boundary between
CREATEandDETACH DELETEmakes the query return1and2.
- Lenguaje dominante
- C
- Estrellas
- 4.9k
- Forks
- 535
- Merge medio
- 10 d 13 h
- PR fusionados (30 d)
- 7
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de apache/age
-
Integer division by -1 on INT64_MIN raises a misclassified floating-point exception (22P01) instead of bigint out of rangePosiblemente ocupada @sean0407 la tomó hace 12 días. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 3 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 3 días
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
apache/age#2596 · 1 comentario ·
Los mantenedores suelen responder en 3 días
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
Los mantenedores suelen responder en 3 días
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
Los mantenedores suelen responder en 3 días
Todos los issues de apache/age
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
polhenarejos/pico-fido#302 ·
-
开发板墙缺少 ESP32_S31_MOSAICOAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
espressif/esp-vision#16 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
libsdl-org/SDL#16577 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
Los mantenedores suelen responder en 1 día
-
halt_error adds a trailing newline for non-string input, contrary to the manualPosiblemente ocupada @Huang-404-Q la tomó hoy. Abierto
Dificultad 1/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 2 días