Accessing fields in RECORD data type using variables as field names

Поиск
Список
Период
Сортировка
От Alistair Hopkins
Тема Accessing fields in RECORD data type using variables as field names
Дата
Msg-id NEBBKMNKFKIKOENCNCMIGEHCGIAA.alistair@berthengron.co.uk
обсуждение исходный текст
Ответы Re: Accessing fields in RECORD data type using variables as field names
Список pgsql-general
Hi,

I am trying to write a generic audit-trail trigger function which will
record changes on a field-by-field basis to a single table for all audited
tables.

However, I find that I can only access a field in OLD and NEW if I know the
name in advance.  Is there any way I can access the fields when I only have
a variable containing the name of the field?

If I can do this, I can make a really simple, schema-change-resistent, low
storage size audit trail for high read / low change databases.

Alistair

this is what I want to do:

    FOR mcolumn IN EXECUTE ''SELECT col FROM v_cols_tables WHERE tbl = '' ||
quote_literal(TG_RELNAME) LOOP
        vold = OLD.mcolumn.col;  <--THIS BREAKS
        vnew = NEW.mcolumn.col;  <--THIS TOO!`
        IF vold <> vnew THEN
            --do audit trail stuff in here...
        END IF;
    END LOOP;



В списке pgsql-general по дате отправления:

Предыдущее
От: "John Sidney-Woollett"
Дата:
Сообщение: Re: Transaction Question
Следующее
От: "Chris Travers"
Дата:
Сообщение: Re: Feature Request for 7.5