PLPGSQL Generic query in trigger doubt - Mailing list pgsql-general

From Mauro
Subject PLPGSQL Generic query in trigger doubt
Date
Msg-id 1312983485.46191.YahooMailNeo@web130205.mail.mud.yahoo.com
Whole thread Raw
Responses Re: PLPGSQL Generic query in trigger doubt
Re: PLPGSQL Generic query in trigger doubt
List pgsql-general
Hi, good morning list

I'm writing a generic trigger in plpgsql to provide a system log to my system, but I'm stopped with the folow problem:

Example:

TABLE STRUCT:
table1
   fldA    VARCHAR
   fldB    VARCHAR
   fldC    VARCHAR

FUNCTION:

DECLARE
   myrecord     RECORD; -- record that will be storing field names from internal postres tables
   fieldtest    NAME; -- actual field name parsing
BEGIN
   -- Generic function to automatize the log of changes
  
   -- 1st, discover the field names from a table
   FOR myrecord IN
   SELECT
      att.attname
     FROM
      pg_attribute att,
      pg_class cls
     WHERE
          cls.oid = att.attrelid
      AND att.attnum > 0
      AND cls.relname = TG_RELNAME limit 1
   LOOP
      -- storing the actual field name
      fieldtest = myrecord.attname;
     
      /*
         Here I'd like to do a parse in the 'fieldtest' variable to teste if the new value is diferent of the old value. The problem is:
         Variable name: fieldtest
         Variable content: fldA

         How I can test the two records (new and old)?
         -- new.fieldtest = fieldtest is not a field name to new record
         -- new."fieldtest" = fieldtest is not a field name to new record
         -- new.(fieldtest) = plpgsql can not do a parser in this
         -- 'new.' || fieldtest = this is a string and can not be evaluate
      */


   END LOOP;
  
   -- Returning
   RETURN NEW;
END;




 
Mauro Gonçalves

pgsql-general by date:

Previous
From: Chetan Suttraway
Date:
Subject: Re: Pgadmin goes missing in Ubuntu
Next
From: Merlin Moncure
Date:
Subject: Re: PLPGSQL Generic query in trigger doubt