35.42. routine_routine_usage #

A visão routine_routine_usage identifica todas as funções ou procedimentos usados ​​por outra função ou procedimento (ou pela mesma função ou procedimento), seja no corpo do SQL ou em expressões padrão de parâmetros. (Só funciona em corpos SQL não delimitados, e não em corpos delimitados ou funções em outras linguagens.) Somente será incluída uma entrada se a função usada pertencer à função de banco de dados ativa no momento. (Não existe tal restrição quanto à função que usa.)

Note que as entradas para as duas funções na visão referem-se ao nome específico da rotina, mesmo que os nomes das colunas sejam usados de uma forma inconsistente com outras visões do esquema de informações sobre rotinas. Isto segue o padrão SQL, embora possa ser questionado como um projeto incorreto. Veja routines para obter mais informações sobre nomes específicos.

Tabela 35.40. Colunas de routine_routine_usage

Coluna Tipo de dados

Descrição

specific_catalog sql_identifier

Nome do banco de dados que contém a função utilizadora (sempre o banco de dados corrente)

specific_schema sql_identifier

Nome do esquema que contém a função utilizadora

specific_name sql_identifier

O nome específico da função utilizadora.

routine_catalog sql_identifier

Nome do banco de dados que contém a função usada pela primeira função (sempre o banco de dados corrente)

routine_schema sql_identifier

Nome do esquema que contém a função usada pela primeira função

routine_name sql_identifier

O nome específico da função usada pela primeira função.


Exemplo 35.39. Exemplo do tradutor

Funções ou procedimentos usados ​​por outra função ou procedimento (ou pela mesma função ou procedimento)

Uso do esquema de informações para mostrar todas as funções ou procedimentos usados por outra (ou a mesma) função ou procedimento, seja no corpo ou nas expressões padrão dos parâmetros.

CREATE FUNCTION hoje()
RETURNS date
AS $$
BEGIN
  RETURN CURRENT_TIMESTAMP::date;
END
$$ LANGUAGE plpgsql;
CREATE FUNCTION
COMMENT ON FUNCTION hoje IS 'Dia de hoje';
COMMENT
CREATE FUNCTION dias_entre_datas (
    inicio date,
    fim    date DEFAULT hoje())
RETURNS integer
AS $$
BEGIN
  RETURN abs(inicio - fim);
END
$$ LANGUAGE plpgsql;
CREATE FUNCTION
COMMENT ON FUNCTION dias_entre_datas IS 'Dias entre datas - padrão hoje';
COMMENT
SELECT dias_entre_datas ('2026-01-01');

 dias_entre_datas
------------------
              123
(1 linha)

SELECT * FROM information_schema.routine_routine_usage\gx

-[ RECORD 1 ]----+-----------------------
specific_catalog | cristina
specific_schema  | public
specific_name    | dias_entre_datas_34419
routine_catalog  | cristina
routine_schema   | public
routine_name     | hoje_34418