Re: A little RULE help? - Mailing list pgsql-general

From Adrian Klaver
Subject Re: A little RULE help?
Date
Msg-id 13cd6084-ea37-6bc3-6f9a-851f5606f719@aklaver.com
Whole thread Raw
In response to RE: A little RULE help?  (Steven Winfield <Steven.Winfield@cantabcapital.com>)
List pgsql-general
On 01/25/2018 03:34 PM, Steven Winfield wrote:
> Maybe this?:
> 
> https://www.postgresql.org/docs/10/static/sql-createrule.html
> 
> "There is a catch if you try to use conditional rules for complex view
> updates: there must be an unconditional INSTEAD rule for each action you
> wish to allow on the view. If the rule is conditional, or is not
> INSTEAD, then the system will still reject attempts to perform the
> update action, because it thinks it might end up trying to perform the
> action on the dummy table of the view in some cases. If you want to
> handle all the useful cases in conditional rules, add an unconditional
> DO INSTEAD NOTHING rule to ensure that the system understands it will
> never be called on to update the dummy table. Then make the conditional
> rules non-INSTEAD; in the cases where they are applied, they add to the
> default INSTEAD NOTHING action. (This method does not currently work to
> support RETURNING queries, however.)"
> 
> Thanks, I saw that – but none of my rules are conditional, and they are 
> all INSTEAD OF, so I didn’t think that was the problem.

My mistake I saw:

UPDATE rule_test SET tt = tstzrange(lower(tt), CURRENT_TIMESTAMP, '[)') 
WHERE id = OLD.id;

and in my head transformed that into a conditional RULE.

> 
> FYI, I gave up on RULE's a while back. Triggers are a lot easier to
> figure out and maintain.
> 
> These rules (including the non-working UPDATE rule) seemed fairly small 
> and quite readable,
> 
> so I didn’t think maintenance would be a problem.
> 
> Debugging this is a bit harder, however…

The reason I gave up on rules, figuring out how the query rewrite system 
works is a bear. I understand(most of the time) what triggers do, so I 
stick with what I understand.

> 
> Steve.
> 
> 
> 
> 

-- 
Adrian Klaver
adrian.klaver@aklaver.com


pgsql-general by date:

Previous
From: Steven Winfield
Date:
Subject: RE: A little RULE help?
Next
From: Laurenz Albe
Date:
Subject: Re: Deferrable constraint trigger