[Bug] PG15/1.8.0 regression: query with variable-length edge (VLE) traversal failed
维护者通常 2 天内回复
还没有人认领这个 Issue。
评估
调研方向
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.
由索引模型根据 Issue 内容生成。
描述
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.
- 主要语言
- C
- 星标
- 4.9k
- 派生
- 532
- 平均合并
- 9 天 18 小时
- 30 天内合并 PR
- 10
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
apache/age 的其他 Issue
-
Integer division by -1 on INT64_MIN raises a misclassified floating-point exception (22P01) instead of bigint out of range可能已有人在做 @sean0407 于 3 天前认领。 未关闭bug
难度 2/5 1-3 小时 新手友好度 74/100
维护者通常 2 天内回复
-
难度 2/5 1-3 小时 新手友好度 88/100
维护者通常 2 天内回复
-
难度 5/5 一周以上 新手友好度 30/100
维护者通常 2 天内回复
-
难度 4/5 3-5 天 新手友好度 48/100
维护者通常 2 天内回复
-
bug
难度 4/5 3-5 天 新手友好度 72/100
维护者通常 2 天内回复
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 70/100
DaveGamble/cJSON#1100 ·
-
area:runtime-vm
难度 2/5 1-3 小时 新手友好度 72/100
InauguralSystems/EigenScript#1748 ·
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 76/100
leanprover/lean4#15677 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 2 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 68/100
wasm-micro-runtime/wasm-micro-runtime#5159 ·
维护者通常 7 天内回复