Is there anyway from within a plpgsql function that you can get the name of the function? Or even the OID of the function?
I know there are some “special” variables (such as FOUND) within plpgsql, but there doesn’t seem to be any way of getting this. (Although, I’ve read where it seems to be possible if your function is written in C). It’s not critical, but it would make something I’m doing a little nicer/less fragile.
I’m using PostgreSQL v. 9.1.5
For triggers use TG_NAME to get the name of the trigger (not the trigger function) fired.
You also have
current_query()to get the top level query executed by the application, the root cause for your function’s execution. It won’t show you any intermediate functions.Otherwise, not really AFAIK and I did go looking for it a while ago when I wanted to print a “current function stack” for debugging. Others may know more.
UPDATE: In Pg 9.4 and above you can also use
PG_CONTEXTto the call stack, but not just the current function name.