postgres 创建函数问题

问题1:怎么理解t(val)

CREATE or replace FUNCTION has_dupli_val(VARIADIC arr int[]) RETURNS boolean AS $$
select count(distinct val)<>count(*) dist_val from unnest($1) t(val) where val is not null;
$$ language sql strict;

问题2:postgres文档在解释参数类型时

The mode of an argument: IN, OUT, INOUT, or VARIADIC. If omitted, the default is IN. Only OUT arguments can follow a VARIADIC one. Also, OUT and INOUT arguments cannot be used together with the RETURNS TABLE notation.

怎么理解Only OUT arguments can follow a VARIADIC one. 这句话?
新手上路,谢谢大家~

只有OUT参数可以跟在VARIADIC参数后面”。这意味着在函数定义中,如果有一个VARIADIC参数,则只能在它之后添加OUT参数