gpt4 book ai didi

sql - Greenplum:尚不支持从 segDB 执行 SQL 语句的函数

转载 作者:行者123 更新时间:2023-11-29 12:06:46 24 4
gpt4 key购买 nike

当我尝试从 SNE GP 版本中我的一个表上设置的插入触发器调用函数时出现此错误:

ERROR:  Functions that execute SQL statements from the segDBs are not yet supported (spi.c:203)  (seg0 localhost:50001 pid=5504)
DETAIL:
SQL statement "SELECT DISTINCT min(zasn) FROM zeusasn WHERE zasn IN (SELECT asn FROM asntable where ip >>= '10.29.249.121')"
PL/pgSQL function "eptriggerfn" line 5 at SQL statement

********** Error **********

ERROR: Functions that execute SQL statements from the segDBs are not yet supported (spi.c:203) (seg0 localhost:50001 pid=5504)
SQL state: XX000
Detail:
SQL statement "SELECT DISTINCT min(zasn) FROM zeusasn WHERE zasn IN (SELECT asn FROM asntable where ip >>= '10.29.249.121')"
PL/pgSQL function "eptriggerfn" line 5 at SQL statement

这可能是什么原因造成的?触发器 + 函数与同一数据库中的另一个表完美配合。

提前致谢!

Rgds,基兰

最佳答案

由于Greenplum跨多个节点进行分布式处理,一个查询中的一个查询无法利用全部的处理能力,所以不支持。

当我们进行切换时,我们遇到了类似的问题:

select      *,
country_name(country_id)
from sales
where country_id in (224, 105);

函数 country_name() 基本上对每个 id 进行子查询以获取国家/地区名称。所以我们不得不将查询更改为:

select      *,
c.country_name
from sales
left join country as c using (country_id)
where country_id in (224, 105);

...问题就解决了。我知道这看起来工作量很大,但好处是值得的。

关于sql - Greenplum:尚不支持从 segDB 执行 SQL 语句的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4582472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com