PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Abrufen des Namens der aktuellen Funktion innerhalb der Funktion mit plpgsql

Ab Postgres 9.4 gibt die folgende Funktion ihren eigenen Namen zurück:

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;