O catálogo pg_proc armazena informações sobre as funções (ou procedimentos). Para obter mais informações deve ser visto o comando CREATE FUNCTION e a Seção 33.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 43-24. Colunas do catálogo 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 |
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 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.