PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Obtendo o nome da função atual dentro da função com plpgsql


A partir do Postgres 9.4, a função abaixo retornará seu próprio nome:
CREATE OR REPLACE FUNCTION your_schema.get_curr_fx_name()
RETURNS text AS  $$
DECLARE
  stack text; fcesig text;
BEGIN
  GET DIAGNOSTICS stack = PG_CONTEXT;
  fcesig := substring(stack from 'function (.*?) line');
  RETURN fcesig::regprocedure::text;
END;
$$ LANGUAGE plpgsql;