postgresql 执行此查询时可能导致此错误的原因是什么?

kqqjbcuj  于 2023-05-06  发布在  PostgreSQL
关注(0)|答案(3)|浏览(184)

所以最近经常发生这种情况,有一些疑问。例如:- 今天我在玩Apache AGE 1.3.0,我执行了这个查询

SELECT * from cypher('test', $$
      CREATE ({name:'bobby'}),
             (:Person {name:'bobby'}),
             (:Bobby {name:'bobby'})
    $$) as (a agtype);

unhandled cypher(cstring) function call错误但是,不做任何更改地再次执行相同的查询可以完全正常地工作。

test=# SELECT * from cypher('test', $$
  CREATE ({name:'bobby'}),
         (:Person {name:'bobby'}),
         (:Bobby {name:'bobby'})
$$) as (a agtype);
2023-04-23 16:51:45.674 CEST [9032] ERROR:  unhandled cypher(cstring) function call
2023-04-23 16:51:45.674 CEST [9032] DETAIL:  test
2023-04-23 16:51:45.674 CEST [9032] STATEMENT:  SELECT * from cypher('test', $$
      CREATE ({name:'bobby'}),
             (:Person {name:'bobby'}),
             (:Bobby {name:'bobby'})
    $$) as (a agtype);
ERROR:  unhandled cypher(cstring) function call
DETAIL:  test
test=# SELECT * from cypher('test', $$
  CREATE ({name:'bobby'}),
         (:Person {name:'bobby'}),
         (:Bobby {name:'bobby'})
$$) as (a agtype);
 a 
---
(0 rows)

我不完全确定这是否与AGE 1.3.0有关,或者与我最近安装的调试器有关。但是,当执行查询时,进程没有附加到gdb。
这个错误是从哪里产生的呢?

k3fezbri

k3fezbri1#

AGE未正确加载时出现问题。如果您在未先加载的情况下运行查询,则服务器会自行加载扩展。查看这个github issue以获取更多信息:https://github.com/apache/age/issues/41

mepcadol

mepcadol2#

在查看了错误消息和您提供的查询之后,似乎在您第一次运行查询时服务器出现了问题。但是,再次执行相同的查询而不进行任何更改,可以正常工作。在初始查询执行时,服务器可能存在一些失真或问题。

NOTICE:  graph "demo_graph" has been created
 create_graph 
--------------
 
(1 row)

newdb=# SELECT * from cypher('demo_graph', $$
      CREATE ({name:'bobby'}),
             (:Person {name:'bobby'}),
             (:Bobby {name:'bobby'})
    $$) as (a agtype);
 a 
---
(0 rows)

newdb=#
3htmauhk

3htmauhk3#

查询看起来很好,对这里发生的事情最合理的解释是数据库中的临时问题或不一致。第二次运行该命令时,问题可能已解决,或者数据库状态可能已更改,允许成功执行该命令。您可以检查您的数据库,看看它是否崩溃或不工作的第一次。

相关问题