How can I use a dynamic column name after NEW. or OLD. in trigger procedure?

From: Peter Devoy <peter(at)3xe(dot)co(dot)uk>
To: pgsql-general(at)postgresql(dot)org
Subject: How can I use a dynamic column name after NEW. or OLD. in trigger procedure?
Date: 2016-01-19 22:05:44
Message-ID: CABoFc_h9uavYu_7q6AyVMcdzjVwxaZSgGnca-dAY-TeO4xupbA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

As part of the extension I am writing I am trying to create a trigger
procedure in which the value of the primary key of the NEW or OLD row
is used. The trigger will be fired by arbitrary tables so the column
name must be dynamic. Something like:

pk_column := 'foo_id'; --example assignment only

EXECUTE 'INSERT INTO bar (baz) VALUES ($1)'
USING NEW.quote_literal(pk_column);

Out of desperation I have pretty much brute forced many weird
combinations of quote_literal, quote_ident, ::regclass, || and USING.
Unfortunately, I have not been able to get anything to work so any
help would be very much appreciated.

Thanks for reading

Peter Devoy

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Vik Fearing 2016-01-19 22:14:20 Re: How can I use a dynamic column name after NEW. or OLD. in trigger procedure?
Previous Message Devrim GÜNDÜZ 2016-01-19 22:02:27 Re: plpython3 package absent in 9.5 repository