如何在PostgreSQL 8中重用函数名作为out-parameter?

时间:2009-09-28 20:37:10

标签: sql postgresql plpgsql

我的函数名称非常有用:has_useful_state(param)

我有第二个函数将返回这些结果的SETOF RECORD

CREATE OR REPLACE FUNCTION set_of_useful_things(param TEXT, OUT has_useful_state) RETURNS SETOF RECORD AS $_$
BEGIN
    SELECT some_key, COUNT(has_useful_state(some_key)) FROM ....

无论如何,这是它脱轨的地方。该函数,其中has_useful_state是返回列名称和提供它的函数的最佳名称,无法编译,如下所示:

SELECT some_key, COUNT( $1 (some_key)) FROM ....

显然,函数名称被视为别名......所以我怎样才能避免这种情况并保留我的有用函数和列名?

1 个答案:

答案 0 :(得分:1)

你也可以坚持使用同名的两个变量,但大部分时间我们都要忍受彼此阴影的讨厌习惯。

简而言之,不,你不能,你必须改变其中一个(我的猜测是你会牺牲一个参数)。