multi-row `CREATE` and `DETACH DELETE` reuse a deleted vertex binding
I maintainer di solito rispondono entro 3 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 53/100
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- C
- Stelle
- 4.9k
- Fork
- 535
- Merge medio
- 10g 13h
- PR unite (30g)
- 7
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di apache/age
-
Integer division by -1 on INT64_MIN raises a misclassified floating-point exception (22P01) instead of bigint out of rangeForse già presa @sean0407 l’ha presa 11 giorni fa. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 3 giorni
-
bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
apache/age#2596 · 1 commento ·
I maintainer di solito rispondono entro 3 giorni
-
bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
I maintainer di solito rispondono entro 3 giorni
-
bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
I maintainer di solito rispondono entro 3 giorni
Issue simili
-
enhancement good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
linux-test-project/ltp#1343 · 1 commento ·
-
test_audio_host: out-of-bounds read in test_audio_host_uses_exponential_full_speed_iso_intervalApertafollowup Prio 📌
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 1 giorno
-
docs
Difficoltà 2/5 1-3 ore Idoneità per principianti 69/100
micropython/micropython#19798 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
valkey-io/valkey#4979 · 1 reazione ·
I maintainer di solito rispondono entro 2 giorni