few questions about rules: timestamp, new.oid - Mailing list pgsql-sql

From Michael Olivier
Subject few questions about rules: timestamp, new.oid
Date
Msg-id 37A607FA.E9727ABD@local2me.com
Whole thread Raw
Responses Re: [SQL] few questions about rules: timestamp, new.oid  (Herouth Maoz <herouth@oumail.openu.ac.il>)
List pgsql-sql
Hi,

I am setting up rules to track changes to some tables, in PG 6.4.2-3 (RH
Linux 6.0) ... and have two questions:


1. I'm storing a datetime timestamp for when the change was entered into
my changes table, but the timestamp doesn't change with subsequent
tests:
   create rule users_modify_rule as on update to users do       insert into changes (table_name, change_time, ref_oid,
type)      values ('users', 'now', current.oid, 'update');
 

dmtest=> select * from changes;
table_name|change_time                 |ref_oid|ref_name|type  
----------+----------------------------+-------+--------+------
users     |Mon Aug 02 13:52:34 1999 PDT| 990398|        |update
users     |Mon Aug 02 13:52:34 1999 PDT| 990398|        |update
users     |Mon Aug 02 13:52:34 1999 PDT| 990398|        |update
users     |Mon Aug 02 13:52:34 1999 PDT| 990398|        |update
users     |Mon Aug 02 13:52:34 1999 PDT| 990398|        |update
(5 rows)


2. How can I get the oid of a record being inserted?  Using new.oid
isn't getting it for me... the field in my changes table remains
blank...
   create rule users_add_rule as on insert to users do       insert into changes (table_name, change_time, ref_oid,
type)      values ('users', 'now', new.oid, 'insert');
 

Getting some other field, like new.acctname, does work...


Thanks,
Michael


pgsql-sql by date:

Previous
From: Tom Lane
Date:
Subject: Re: [SQL] Using Aliases in Select
Next
From: "tjk@tksoft.com"
Date:
Subject: Re: [SQL] MVCC and concurrent clients