Skip site navigation (1) Skip section navigation (2)

Re: oid or schema name of current plpgsql function

From: mandjeli(at)mjesec(dot)ffzg(dot)hr (Matko Andjelinic)
To: Michael Fuhr <mike(at)fuhr(dot)org>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: oid or schema name of current plpgsql function
Date: 2005-04-29 10:08:01
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-general
On Thu, Apr 28, 2005 at 08:51:50PM -0600, Michael Fuhr wrote:
> I'm not aware of a way to get the current function's OID in PL/pgSQL,
> but you can do it in C.

Yeah, i know that...I was hoping it would be possible from pl/pgsql :-(

> Why do you need to know the function's schema?  What are you trying
> to do?

I'm designing a logging trigger procedure that logs changes from a table
in a source schema to a table with the same name in the logging schema.
It would be cool if the location of the trigger procedure would imply
the logging schema - the location of the log table. 

for example:

	create schema myschema_history;

	create or replace function myschema_history.log() returns trigger as '
	  -- logging implementation here
	'language 'plpgsql';

	create schema myschema;

	create table (
	-- table definition here

	create trigger foo_history
	    before insert or update or delete on
	    for each row execute procedure myschema_history.changed();

I thought it would be really neat to imply the log schema location.
Since it's not possible to know function schema, i will probably use
trigger params:

	for each row execute proceudre myschema_history.log('myschema_history');

Or, I could hard code the name inside of every instance of log() procedure. :-/


In response to

pgsql-general by date

Next:From: Joe MaldonadoDate: 2005-04-29 12:16:34
Subject: Re: info on strange error messages on postgresql
Previous:From: Alvar FreudeDate: 2005-04-29 10:03:22
Subject: Re: GUITools update

Privacy Policy | About PostgreSQL
Copyright © 1996-2017 The PostgreSQL Global Development Group