Thanks for pinpointing that out. After including your solution it shows at least something like "UPDATE OF with id: 123456567". Unfortunately after using coalesce, too, when building the field variable like: field = 'field gruppe from: ' || coalesce(OLD.gruppe, '') || ' TO ' || coalesce(NEW.gruppe, ''); there still seem to be null values. Of course, it can be that the user deletes a value and then there is a NULL value, say for NEW.gruppe for example, but shouldn't the coalesce in this case avoid that the whole field-string is empty? Christian Rengstl M.A. Klinik und Poliklinik für Innere Medizin II Kardiologie - Forschung Universitätsklinikum Regensburg B3 1.388 Franz-Josef-Strauss-Allee 11 93053 Regensburg Tel.: +49-941-944-7230 >>> On Tue, Nov 27, 2007 at 10:53 AM, in message <20071127095336.GF31593@xxxxxxxxxxxxxxx>, "A. Kretschmer" <andreas.kretschmer@xxxxxxxxxxxxxx> wrote: > am Tue, dem 27.11.2007, um 10:38:09 +0100 mailte Christian Rengstl > folgendes: >> Hi list, >> >> act = 'DELETION of row with id: ' || OLD.id; >> act = 'UPDATE OF ' || field || ' with id: ' || >> ... >> INSERT INTO history(aennam, action, table_name) VALUES(current_user, >> act, tab); >> >> Now the problem is that a tuple gets added to the table history, but >> the field "action" (whatever the user did) is 99% empty, whereas the >> others are filled and I don't see why... >> >> Any hint is greatly appreciated > > Maybe sometime the concateneted fields (e.g. field, OLD.id) contains > NULL- values. If so, the complete string 'act' will be NULL. > > Solution: use coalesce(field,''). Hope that helps. > > > Andreas ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match