gpt4 book ai didi

返回另一个 SETOF 函数结果的 SETOF 返回函数的性能?

转载 作者:行者123 更新时间:2023-11-29 14:02:26 26 4
gpt4 key购买 nike

我编写了一个函数,它接受两个参数并返回一个 SETOF 结果。

创建函数 foo(parentId bigint, childId bigint) 返回 SETOF 栏 AS ...

我想为这个函数编写两个“包装器”,使其更易于调用:

CREATE FUNCTION foo_parent(parentId bigint) 
RETURNS SETOF bar AS
...
BEGIN
RETURN QUERY SELECT * FROM foo(parentId, NULL);
END;

CREATE FUNCTION foo_child(childId bigint)
RETURNS SETOF bar AS
...
BEGIN
... look up parent ID ...
RETURN QUERY SELECT * FROM foo(parentId, childId);
END;

FOO_CHILD() 被调用时,postgres 是否足够聪明直接返回 FOO() 的结果,或者它会复制 FOO( )FOO_CHILD() 执行时,然后返回那些结果?

我想我是在问 pgplsql 是否会进行尾调用优化!

编辑:我正在使用 Postgres 8.2。

最佳答案

plpgsql 总是在返回之前具体化结果,所以没有。

关于返回另一个 SETOF 函数结果的 SETOF 返回函数的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3514855/

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