[Bug] PG15/1.8.0 regression: query with variable-length edge (VLE) traversal failed
I maintainer di solito rispondono entro 2 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 50/100
Direzione di ricerca
Start by running the provided cypher() reproduction on PostgreSQL 15 with AGE 1.8.0, then inspect the variable-length traversal planner associated with the regression from issue 2450. Done means the generated-column setup no longer raises the attribute-mapping error and both zero-hop and subsequent graph layers return successfully.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
Executing a variable-length edge (VLE) traversal that starts with a zero-hop evaluation (*0..) triggers an unexpected relational engine crash: ERROR: Invalid number of attributes for <graph_name>.<vertex_label_name>. Even though the vertex and edge tables exist and are populated, the internal VLE execution planner fails to map the column definitions of the target label table when matching variable-length paths. This is a severe regression introduced in the PG15/1.8.0 release due to this fix https://github.com/apache/age/issues/2450.
How are you accessing AGE (Command line, driver, etc.)?
Directly via cypher() SQL function (IN psql client).
What data setup do we need to do?
-- 1. Create a fresh graph and register both vertex and edge labels
SELECT create_graph('age_bug');
SELECT create_vlabel('age_bug', 'Product');
SELECT create_elabel('age_bug', 'HAVE');
-- 2. Add generated column (this triggers the bug)
ALTER TABLE age_bug."Product"
ADD COLUMN category VARCHAR(25) GENERATED ALWAYS AS (agtype_access_operator(properties, '"category"')) STORED;
-- 3. Populate data with three linked dummy products forming a continuous path
SELECT * FROM cypher('age_bug', $$
CREATE (p1:Product {category: 'device', type: 'D123', version: 1})
CREATE (p2:Product {category: 'cpu', type: 'I123', version: 1})
CREATE (p3:Product {category: 'chip', type: 'C123', version: 1})
// Create the structural edge links between them
CREATE (p1)-[:HAVE]->(p2)
CREATE (p2)-[:HAVE]->(p3)
$$) AS (_ agtype);
What is the necessary configuration info needed?
- No configuration needed
What is the command that caused the error?
SELECT * FROM cypher('age_bug', $$
MATCH (_:Product { category: 'device', type: 'D123', version: 1 })-[have_path:HAVE*1..]->(product:Product)
RETURN product
$$)
AS (node agtype);
ERROR:
psql client log:
SQL Error [42P01]: ERROR: Invalid number of attributes for age_bug.Product
server log:
ERROR: Invalid number of attributes for age_bug.Product
STATEMENT: SELECT * FROM cypher('age_bug', $$
MATCH (_:Product { category: 'device', type: 'D123', version: 1 })-[have_path:HAVE*1..]->(product:Product)
RETURN product
$$)
AS (node agtype)
Expected behavior
The query execution should succeed without a schema exception. For a *0.. quantifier, it should evaluate the initial root matched node as a valid 0-hop result set, and then cleanly walk down the 1-hop and 2-hop graph layers instead of crashing with a table attribute mapping mismatch.
Environment (please complete the following information):
- AGE Version: release/PG15/1.8.0
admin=> \dx age;
List of installed extensions
Name | Version | Schema | Description
------+---------+------------+------------------------
age | 1.8.0 | ag_catalog | AGE database extension
(1 row)
- PostgreSQL Version: PostgreSQL 15.8 (Debian 15.8-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
- OS: Linux
Additional context
Add any other context about the problem here.
- Lingua principale
- C
- Stelle
- 4.9k
- Fork
- 532
- Merge medio
- 9g 18h
- PR unite (30g)
- 10
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 3 giorni fa. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 30/100
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
I maintainer di solito rispondono entro 2 giorni
-
bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 72/100
I maintainer di solito rispondono entro 2 giorni
Issue simili
-
UB: (int) cast of a user double outside int range in dispatch / vm_index_is_int / flat_index_atApertaarea:runtime-vm
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
InauguralSystems/EigenScript#1748 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
wasm-micro-runtime/wasm-micro-runtime#5159 ·
I maintainer di solito rispondono entro 7 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 4 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 Mezza giornata Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno