From: | "Jules Alberts" <jules(dot)alberts(at)arbodienst-limburg(dot)nl> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | pl/tcl trigger question |
Date: | 2003-08-26 11:28:58 |
Message-ID: | 20030826112940.9E3551CB1CF@koshin.dsl.systemec.nl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hello everyone,
I'm working on a tiny trigger function that needs to ensure that all
values entered in a field are lowercase'd. I can't use pl/pgsql because
I have a dozen different columns (with different names) that need a
trigger that does this and pl'pgsql can't expand variable names to
fieldnames. Writing a dozen functions (one per columnname) is /way/ too
blunt so I tried pl/tcl (which I don't know):
----------------------------------------------------------------
-- first do:
-- createdb test
-- createlang pltcl test
drop function my_lowercase() cascade;
create function my_lowercase() returns trigger as '
set NEW($1) lower(NEW($1))
return [array get NEW]' language 'pltcl';
drop table mytab;
create table mytab (myfield varchar);
create trigger trig_mytab before insert or update on mytab
for each row execute procedure my_lowercase('myfield');
-- let's insert a string, hope it's lowercase'd
insert into mytab (myfield) values ('TEST');
select * from mytab;
-- wrong, myfield contains 'lower(NEW(myfield))'
----------------------------------------------------------------
Can someone please tell me what I'm doing wrong? It's probably
something very simple but I don't know TCL (and I'm planning to keep
the serverside programming on pl'pgsql as much as possible).
TIA!
From | Date | Subject | |
---|---|---|---|
Next Message | Pedro Alves | 2003-08-26 11:32:23 | Re: Index usage and wrong cost analisys |
Previous Message | Pedro Alves | 2003-08-26 08:59:35 | Re: Index usage |