Estou tentando escrever uma função para obter o nome da função associada a uma determinada regprocedure
variável, da seguinte forma:
CREATE OR REPLACE FUNCTION get_funcname(_fn regprocedure)
RETURNS text AS
$func$
SELECT proname::text
FROM pg_catalog.pg_proc AS p
JOIN pg_catalog.pg_namespace AS ns
ON p.pronamespace = ns.oid
WHERE p.oid = _fn;
$func$ LANGUAGE sql;
espero receber my_func
em troca
SELECT get_funcname('my_func(text, variadic text[])');
No entanto, o acima está me dando o erro:
ERROR: syntax error at or near "variadic"
LINE 1: SELECT get_funcname('my_func(text, variadic text[])');
^
CONTEXT: invalid type name "variadic text[]"
Alguém pode ajudar a explicar como corrigir a função ou sintaxe?
Você tem
Dos documentos,
Isso significa que você não faz nada de especial para
VARIADIC
parâmetros além do que você especificaria para parâmetros de entrada. No seu caso, basta soltar esse token,Claro.