X-Original-To: pgsql-sql-postgresql.org@localhost.postgresql.org Received: from localhost (unknown [200.46.204.144]) by svr1.postgresql.org (Postfix) with ESMTP id 5DB8E52874 for ; Thu, 2 Jun 2005 08:57:43 -0300 (ADT) Received: from svr1.postgresql.org ([200.46.204.71]) by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024) with ESMTP id 72983-01 for ; Thu, 2 Jun 2005 11:57:39 +0000 (GMT) Received: from interscan.indicator.com (mail.indicator.be [193.121.199.3]) by svr1.postgresql.org (Postfix) with ESMTP id 288D952838 for ; Thu, 2 Jun 2005 08:57:37 -0300 (ADT) Received: from DOMEXT-MTA by webaccess.indicator.bewith Novell_GroupWise; Thu, 02 Jun 2005 13:57:39 +0200 Message-Id: X-Mailer: Novell GroupWise Internet Agent 6.5.3 Date: Thu, 02 Jun 2005 13:57:26 +0200 From: "Bart Degryse" To: Subject: plpgsql and triggers Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="=__Part7655A736.0__=" X-imss-version: 2.025 X-imss-result: Passed X-imss-approveListMatch: *@indicator.be X-Virus-Scanned: by amavisd-new at hub.org X-Spam-Status: No, hits=0.137 tagged_above=0 required=5 tests=FORGED_RCVD_HELO, HTML_40_50, HTML_MESSAGE X-Spam-Level: X-Archive-Number: 200506/67 X-Sequence-Number: 21668 This is a MIME message. If you are reading this text, you may want to consider changing to a mail reader or gateway that understands how to properly handle MIME multipart messages. --=__Part7655A736.0__= Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit I'm looking for a way to use a parameter given to a trigger function as fieldname. It should be something like create function f_makeupper() returns trigger as ' begin NEW.TG_ARGV[0] := upper(NEW.TG_ARGV[0]); RETURN NEW; end; ' language 'plpgsql'; create trigger "TRIG_tbltest" before insert on tbltest for each row execute procedure f_makeupper("fieldname"); I can create both the function and the trigger, but on inserting a new record I get an error telling me that "record 'new' has no field 'tg_argv'" What am I doing wrong ? --=__Part7655A736.0__= Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Description: HTML
I'm looking for a way to use a parameter given to a trigger function = as fieldname. It should be something like
create function f_makeupper() returns trigger as '
begin
    NEW.TG_ARGV[0] :=3D upper(NEW.TG_ARGV[0]);
    RETURN NEW;
end;
' language 'plpgsql';
create trigger "TRIG_tbltest" before insert on tbltest for each row = execute procedure f_makeupper("fieldname");
 
I can create both the function and the trigger, but on inserting a = new record I get an error telling me that "record 'new' has no field = 'tg_argv'"
 
What am I doing wrong ?
 
--=__Part7655A736.0__=--