PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Ottenere il nome della funzione corrente all'interno della funzione con plpgsql

A partire da Postgres 9.4, la funzione seguente restituirà il proprio 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;