Dave and Dmitriy,

I know a function can be used, but the point is to log a table whenever 
"someone else" does a SELECT on it.

It cannot be depended on that a user will include that (or any specific 
function in a SELECT.  iow, when any user does "SELECT ... FROM tablex;" then 
logging should occur.

That cannot happen unless there a trigger of the form:
CREATE TRIGGER tg_log_table AFTER SELECT 
ON tablex FOR EACH STATEMENT
EXECUTE PROCEDURE log_table();

And yes, I know access the to table is restricted, but that is also not the 
point. Suppose an application requires that a user/client be charged for each 
time they access certain data?

The point, and question is, not how to work around the problem, but rather, why 
cannot this functionality be implemented in triggerts and rules.

Melvin Davidson 
Dmitriy

>Why not use function which returns table and wrap the
>logging (auditing) code in it ?

Because to use a trigger function, you need a trigger, and as previously 
stated, you cannot have a trigger on select. The same applies for a rule.Melvin 
Davidson   


      

Reply via email to