1

是否可以找出 postgres 中函数中的参数是否定义为

table.column%type foo

或者

sometype foo

查询例如 pg_proc?

4

1 回答 1

2

中的proargtypespg_proc是所有函数参数类型的数组。然后可以将每种类型交叉引用到pg_type.oid.

所以如果我定义一个这样的函数:

steve@steve@[local] =# create function testfunc(pg_proc.proname%type) returns boolean language 'sql' immutable strict as $$ select true $$;
NOTICE:  type reference pg_proc.proname%TYPE converted to name
CREATE FUNCTION

嗯,那个通知是不是太有希望了。

该函数的 pg_proc 条目是:

 proname  | proargtypes
----------+-------------
 testfunc | 19

类型 19 只是“名称”。所以看起来这里的答案是“不”,恐怕。

于 2009-05-28T23:21:04.437 回答