Raphaël Jacquot wrote:
I recently found myself trying to build a trigger to modify some fields in a good dozen similarly structured tables in which the similar columns had different names. in fact, I got stuck in pl/pgsql with the fact that there's no way to access the NEW tuple in an indirect way, having the name of the column in some variable. (I found that it could be done in plperl, but that left me with a taste of un-completeness...)

It's ugly, but you could play tricks with EXECUTE. Like:

CREATE OR REPLACE FUNCTION emp_stamp() RETURNS trigger AS $emp_stamp$
DECLARE
    empname text;
BEGIN
    EXECUTE 'SELECT ('''||new||'''::emp).empname' INTO empname;
    RAISE NOTICE 'new empname is: %', empname;
    RETURN NEW;
END;
$emp_stamp$ LANGUAGE plpgsql;

Not sure the quoting is right...

--
  Heikki Linnakangas
  EnterpriseDB   http://www.enterprisedb.com

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Reply via email to