Hello On 05/04/2008, Guillaume Bog <guibog@xxxxxxxxx> wrote: > Hello, > > I'm writing a trigger in pl/pgSQL and I'd like to pass one column name as > argument to the trigger function. > > Provided my table has only one column named 'id', I can do easilly > > CREATE FUNCTION ft() RETURNS trigger AS $$ > BEGIN > RAISE NOTICE 'It works:%', OLD.id; > END > $$ LANGUAGE plpgsql; > > But I'd like to do > > CREATE FUNCTION ft() RETURNS trigger AS $$ > DECLARE > col VARCHAR; > BEGIN > col = TG_ARGV[0] > RAISE NOTICE 'This does not works:%', OLD.col > RAISE NOTICE 'This also does not works:%', OLD[col] > END > $$ LANGUAGE plpgsql; > > I tried OLD.(col) and other tricks, like "SELECT INTO" or "EXECUTE", and I > checked the docs. It's not possible in plpgsql. You have to use plperl, pltcl or plpython. Regards Pavel Stehule > >