question on UPDATE rules

From: Matthew Denny <mdenny(at)CS(dot)Berkeley(dot)EDU>
To: pgsql-sql(at)postgresql(dot)org
Subject: question on UPDATE rules
Date: 2000-04-22 00:33:08
Message-ID: 14592.60375.884848.74935@caracas.CS.Berkeley.EDU
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql


I have a rule defined as the following:

CREATE RULE fooBar AS ON
UPDATE TO VectorMessageTable WHERE new.acks = (SELECT
numReplicas FROM VectorTable vt WHERE vt.ID =
new.ID) DO (DELETE FROM VectorMessageTable WHERE ID = new.ID AND
versionNum = new.versionNum);

if I call:

UPDATE VectorMessageTable SET acks =
<corresponding-numReplicas-from-VectorTable>

Then I the update goes through, but none of the records are
deleted. However, if I run any other subsequent update on these tuples in
VectorMessageTable (even ones that change the acks value) then the
rule fires and the tuples are deleted. The crux of the problem seems
to be that the "new" pseudo-relation seems to be returning old values,
as this is the only way I can explain this behavior. Has anyone else
experienced this problem? If so, a workaround would be greatly
appreciated.

thanks,
Matt Denny

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Tom Lane 2000-04-22 03:52:44 Re: possible parser error
Previous Message Christopher Sawtell 2000-04-21 23:48:40 Re: Date_part & cast.