Peter Eisentraut <peter_e@gmx.net> wrote:
> On 2/20/13 2:30 PM, Kevin Grittner wrote:
>>> Are there TRUNCATE triggers on materialized views?
>> No. Nor SELECT, INSERT, UPDATE, or DELETE triggers. You can't
>> create a trigger of any type on a materialized view. I don't
>> think that would interfere with event triggers, though.
>
> More generally, I would consider the invalidation of a
> materialized view a DDL command, whereas truncating a table is a
> DML command.
The force of that assertion is somewhat undercut by the fact that
the ExecuteTruncate() function does exactly what needs to be done
to discard the data in a materialized view and make it appear as
non-scannable. Even if we dress it up with different syntax, it's
not clear that we wouldn't build a TruncateStmt in the parser and
pass it through exactly the same execution path. We would just
need to look at the relkind to generate a different command tag.
> This has various implications with triggers, logging,
> permissions. I think it's not good to mix those two.
Could you give a more concrete example of where you see a problem?
--
Kevin Grittner
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company