O catálogo pg_proc armazena informações sobre as funções (ou procedimentos). Para obter informações adicionais deve ser consultado o comando CREATE FUNCTION e a Seção 31.3.
A tabela contém dados para funções de agregação assim como para funções simples. Se proisagg for verdade, deve existir uma linha correspondente em pg_aggregate.
Tabela 42-24. Colunas de pg_proc
Nome | Tipo | Referencia | Descrição |
---|---|---|---|
proname | name | Nome da função | |
pronamespace | oid | pg_namespace.oid | OID do espaço de nomes que contém esta função. |
proowner | int4 | pg_shadow.usesysid | Dono da função |
prolang | oid | pg_language.oid | Linguagem de implementação ou interface de chamada desta função |
proisagg | bool | Verdade se a função for uma função de agregação | |
prosecdef | bool | Verdade se a função for uma função definidora de segurança (ou seja, uma função "setuid") | |
proisstrict | bool | Verdade se a função retorna nulo quando algum argumento de chamada é nulo. Neste caso, na verdade, a função nem vai ser chamada. As funções que não são "estritas" devem estar preparadas para tratar entradas nulas. | |
proretset | bool | Verdade se a função retorna um conjunto (ou seja, vários valores do tipo de dado especificado) | |
provolatile | char | provolatile informa se o resultado da função depende apenas de seus argumentos de entrada, ou é afetada por fatores externos. Valor igual a i para as funções "imutáveis", que sempre retornam o mesmo resultado para as mesmas entradas. Valor igual a s para as funções "estáveis", cujos resultados (para entradas fixas) não mudam dentro de uma mesma varredura. Valor igual a v para as funções "voláteis", cujos resultados podem mudar a qualquer instante (Também deve ser utilizado v para as funções com efeitos colaterais, para que as chamadas às mesmas não sejam otimizadas). | |
pronargs | int2 | Número de argumentos | |
prorettype | oid | pg_type.oid | Tipo de dado do valor retornado |
proargtypes | oidvector | pg_type.oid | Matriz contendo os tipos de dado dos argumentos da função |
proargnames | text[] | Matriz contendo os nomes dos argumentos das funções. Os argumentos sem nome são definidos na matriz como cadeias de caracteres vazias. Se nenhum dos argumentos tiver nome, este campo pode ser nulo. | |
prosrc | text | Informa ao tratador da função como chamar a função. Podendo ser o código fonte da função para as linguagens interpretadas, o símbolo de ligação, o nome do arquivo, ou qualquer outra coisa, dependendo da linguagem de implementação/convenção de chamada. | |
probin | bytea | Informações adicionais sobre como chamar a função. Novamente, a interpretação é específica da linguagem. | |
proacl | aclitem[] | Privilégios de acesso; para obter detalhes devem ser consultados os comandos GRANT e REVOKE. |
Para as funções compiladas, tanto nativas quanto carregadas dinamicamente, prosrc contém o nome da função na linguagem C (símbolo de ligação). Para todos os outros tipos de linguagem conhecidos no momento, prosrc contém o texto do código fonte da função. probin não é utilizado, exceto para as funções C carregadas dinamicamente, para as quais fornece o nome do arquivo de biblioteca compartilhada contendo a função.