pl/pgsql RECORD data type, how to access to the values

From: "Guillaume Bog" <guibog(at)gmail(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: pl/pgsql RECORD data type, how to access to the values
Date: 2008-04-05 07:39:47
Message-ID: bc5951d00804050039y6442438fwefb114c96f2d7292@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

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.

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Thomas Pundt 2008-04-05 07:52:11 Re: Word boundaries in regular expressions
Previous Message PFC 2008-04-05 07:18:07 Re: modules