Re: capturing and storing query statement with rules

Joe Conway <mail@joeconway.com>

From: Joe Conway <mail@joeconway.com>
To: Guillaume LELARGE <gleu@wanadoo.fr>
Cc: pgsql-general@postgresql.org, Andrew Gould <andrewgould@yahoo.com>
Date: 2003-06-24T20:53:20Z
Lists: pgsql-hackers, pgsql-general
Guillaume LELARGE wrote:
> Le Mardi 24 Juin 2003 20:17, Andrew Gould a écrit :
>>I would like to create a audit log of update and
>>delete queries against a table.  I want the log on the
>>server side, since access will be done using various
>>clients via ODBC.  I would like to capture the user,
>>current datetime and the query statement.  My thought
>>was to accomplish this by creating a rule that will
>>insert the information into a log table.
> 
> To be server side, you need to use a trigger and a plpgsql function. On this 
> page you will find more informations on trigger related functions:
> http://www.postgresql.org/docs/view.php?version=7.3&idoc=0&file=plpgsql-trigger.html
> Perhaps you can compare OLD and NEW rows to know which rows will be updated.
> And you'll find at the end of the page how to get current user (current_user 
> keyword) and current datetime (function now).
> 
>>How can I captures the query statement so that I can
>>place it in a insert query?  Is there a variable in
>>the server that holds the query statement as a string?

I think this shows how to do what you want:
http://archives.postgresql.org/pgsql-sql/2003-05/msg00301.php

HTH,

Joe