Tom Lane wrote:
> 
> Okay, I've extracted a reproducible test case from Warren's info:
> 
> Setup:
> 
> CREATE TABLE sis_user (
> sis_user_id             INTEGER PRIMARY KEY,
> last_visit              DATETIME NOT NULL DEFAULT TEXT 'now');
> 
> CREATE TABLE session (
> session_key             CHAR(40) PRIMARY KEY,
> sis_user_id             INTEGER NOT NULL REFERENCES sis_user(sis_user_id),
> last_access_time        DATETIME NOT NULL DEFAULT TEXT 'now');
> 
> CREATE RULE session_del AS ON DELETE TO session DO
> UPDATE sis_user SET last_visit = OLD.last_access_time
> WHERE OLD.sis_user_id = sis_user.sis_user_id;
> 
> insert into sis_user values(1);
> 
> In session 1, do:
> 
> insert into session values('zzz', 1);
> begin;
> delete from session where  session_key  = 'zzz';
> 
> In session 2, do:
> 
> delete from session where  session_key  = 'zzz';
> 
> Back to session 1:
> 
> end;

Thanks for your quick fix as usual.
BTW I have a question about this example.
Session 2 deletes no row because *session 1* already
deleted the rows but the session_del rule seems to
be invoked. Is it a right behavior ?

regards,
Hiroshi Inoue

---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

Reply via email to