Thread: cannot set view triggers to replica

cannot set view triggers to replica

From
Peter Eisentraut
Date:
It appears to be an omission that ALTER TABLE ... ENABLE TRIGGER and
similar commands don't allow acting on views, even though we now have
triggers on views.

Similarly, the ALTER TABLE ... ENABLE RULE commands only allow acting on
tables, even though rules can also exist on views and materialized views.

(Why don't we allow rules on foreign tables?  Is that intentional?)

Attached is a sample patch.  It appears we don't have any regression
tests for this.

Attachment

Re: cannot set view triggers to replica

From
Michael Paquier
Date:
On Sat, May 30, 2015 at 11:47 AM, Peter Eisentraut <peter_e@gmx.net> wrote:
> It appears to be an omission that ALTER TABLE ... ENABLE TRIGGER and
> similar commands don't allow acting on views, even though we now have
> triggers on views.

True, now isn't it something that should be as well part of ALTER VIEW?

> Similarly, the ALTER TABLE ... ENABLE RULE commands only allow acting on
> tables, even though rules can also exist on views and materialized views.

I think that ALTER VIEW and ALTER MATERIALIZED VIEW should be able to
accept the command as well.

> Attached is a sample patch.  It appears we don't have any regression
> tests for this.

This sounds like a mandatory condition for this patch.
-- 
Michael



Re: cannot set view triggers to replica

From
Dean Rasheed
Date:
On 30 May 2015 at 03:47, Peter Eisentraut <peter_e@gmx.net> wrote:
> It appears to be an omission that ALTER TABLE ... ENABLE TRIGGER and
> similar commands don't allow acting on views, even though we now have
> triggers on views.
>

It was deliberately omitted from the original INSTEAD OF triggers
patch because it didn't seem that useful (and to keep the patch size
down), see:


http://www.postgresql.org/message-id/flat/AANLkTimJw47yZHnxKhMNLCFES=W-sMrqpRe7aj8YBKds@mail.gmail.com#AANLkTimJw47yZHnxKhMNLCFES=W-sMrqpRe7aj8YBKds@mail.gmail.com

That said, I have no objection to allowing it if you think it's likely
to be useful. I think you will need to work a little harder to make it
work properly though. Consider, for example, how
view_has_instead_trigger() and its callers, and CheckValidResultRel()
should behave if the triggers are disabled.

Regards,
Dean



Re: cannot set view triggers to replica

From
Kevin Grittner
Date:
Michael Paquier <michael.paquier@gmail.com> wrote:> On Sat, May 30, 2015 at 11:47 AM, Peter Eisentraut
<peter_e@gmx.net>wrote:
 



>> the ALTER TABLE ... ENABLE RULE commands only allow acting on>> tables, even though rules can also exist on views
andmaterialized views.
 
>
> I think that ALTER VIEW and ALTER MATERIALIZED VIEW should be able to
> accept the command as well.


What would be a use case for disabling the _RETURN rule for a [ MATERIALIZED ] VIEW?


--
Kevin Grittner
EDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company