0

我有一个名字非常有用的函数: 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 ....

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

4

1 回答 1

1

你也可以坚持让两个变量同名,但大多数时候我们不得不忍受它们相互遮蔽的讨厌习惯。

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

于 2009-09-28T20:49:27.550 回答