是否可以找出 postgres 中函数中的参数是否定义为
table.column%type foo
或者
sometype foo
查询例如 pg_proc?
是否可以找出 postgres 中函数中的参数是否定义为
table.column%type foo
或者
sometype foo
查询例如 pg_proc?
中的proargtypes
列pg_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 只是“名称”。所以看起来这里的答案是“不”,恐怕。