分析cypher_match age16失败测试箱
#postgres #database #apacheage #bitnine

你好,发生了什么事?

我们目前在Apache Age的测试套件(我们的回归测试)

8个失败了24

  • 不正常8 -cypher_match 1696 MS
  • 不正常10 -cypher_set 416 ms
  • 不确定11 -cypher_remove 290 ms
  • 不正常12 -cypher_delete 525 MS
  • 不正常14 -cypher_vle 1872 ms
  • 不正常16 -cypher_call 101 ms
  • 不正常17 -cypher_merge 372 ms
  • 不正常20-索引232 MS

让我们讨论cypher_match都失败了吗?没有。

那是什么情况导致问题?

  • 未定义的错误,我们将在应返回结果的情况下获得空的结果

SELECT * FROM cypher('cypher_match', $$
    MATCH ()<-[]-(n:v2)-[]->()
    MATCH p=(n)-[]->()
    RETURN p
$$) AS (i agtype);
-- Error here is having an empty results while expecting a result set
  • 匹配和可选匹配在一起错误
SELECT * FROM cypher('cypher_match', $$
    MATCH (u:opt_match_v)
    OPTIONAL MATCH (u)-[m]-(l)
    RETURN u.name as u, type(m), l.name as l
    ORDER BY u, m, l
$$) AS (u agtype, m agtype, l agtype);
ERROR:  graph_oid and label_id must not be null
  • 匹配和可选匹配在一起错误
SELECT * FROM cypher('cypher_match', $$
    MATCH (n:opt_match_v), (m:opt_match_v)
    WHERE id(n) <> id(m)
    OPTIONAL MATCH (n)-[r]->(p), (m)-[s]->(q)
    RETURN n.name AS n, type(r) AS r, p.name AS p,
           m.name AS m, type(s) AS s, q.name AS q
    ORDER BY n, p, m, q
 $$) AS (n agtype, r agtype, p agtype, m agtype, s agtype, q agtype);
ERROR:  graph_oid and label_id must not be null
  • 匹配和可选匹配在一起错误
SELECT * FROM cypher('test_retrieve_var', $$
    MATCH (a:A) WITH a
    OPTIONAL MATCH (a)-[:incs]->(c)
    WHERE EXISTS((c)<-[:incs]-())
    RETURN a, c
$$) AS (a agtype, c agtype);
ERROR:  graph_oid and label_id must not be null
  • 脚本的清理查询是上述失败Quires的依赖项,因此我们需要修复上述内容,这将导致修复它们

因此总而言之,我们有两种类型的错误(主要)和一种依赖性:

  • 错误:graph_oid和label_id不得为null 当与Match匹配匹配时,发生这种情况
  • 我们期望结果集并获得空结果集的未定义错误
  • 如果我们解决了上述问题,应解决的清理错误

试验和调试

回忆起问题发生在transform_cypher_optional_match_clause
因此,我们试图解决RTINDEX依赖性问题
已经经历的事情以及我现在正在尝试的事情,我将在下一个博客中提到。

参考: