Re: A little RULE help?

Поиск
Список
Период
Сортировка
От Adrian Klaver
Тема Re: A little RULE help?
Дата
Msg-id 13cd6084-ea37-6bc3-6f9a-851f5606f719@aklaver.com
обсуждение исходный текст
Ответ на RE: A little RULE help?  (Steven Winfield <Steven.Winfield@cantabcapital.com>)
Список 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 по дате отправления:

Предыдущее
От: Steven Winfield
Дата:
Сообщение: RE: A little RULE help?
Следующее
От: Laurenz Albe
Дата:
Сообщение: Re: Deferrable constraint trigger