Re: sequences and RULEs

From: Richard Huxton <dev(at)archonet(dot)com>
To: Rafal Pietrak <rafal(at)zorro(dot)isa-geek(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: sequences and RULEs
Date: 2009-06-05 13:32:08
Message-ID: 4A291E58.3040406@archonet.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Rafal Pietrak wrote:
> Now I'd like to write a RULE, that automatically updates references
> between EVENTLOG and STATUS:

> The NEW tuple of the table EVENTLOG, in its ID field at the moment of
> RULE execution has a value of 5! But after everything is finished, the
> actual value deposited in that record is 4.

A rule rewrites the query, so you can end up with parts being evaluated
twice. For functions with side-effects like nextval() that causes
problems. There are other issues too.

> So comes my questions:
> 1. Is this a feature or a bug, that such inconsistent NEW tuple show up
> during RULE execution?

It's a (confusing) feature.

> 2. It looks like I'd have to use TRIGGER FOR EACH ROW in this case. But
> may be there is some othar way, that I could achieve this with the RULE
> system?

Triggers for keeping count of things. See the mailing list archives for
details.

--
Richard Huxton
Archonet Ltd

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Rafal Pietrak 2009-06-05 13:52:02 Re: sequences and RULEs
Previous Message Radcon Entec 2009-06-05 12:57:27 Re: Using a multi-valued function in a view