2010/5/20 Pavel <baros.p@seznam.cz>:
> For this summer I have plan to make patch inplementing snapshot materialized
> views (MV). I believe it will not be end of effort to implement more of MV.
> But I / we need discuss MV syntax and exact behaviour so I have some
> questions about that for all of you:
>
> a) relkind for materialized view in pg_class?
> - I'm voting for char 'm' quite obvious why, but not sure about alias:
> 1 - RELKIND_MVIEW
> 2 - RELKIND_MATVIEW
> or any other ideas?
I think the prior question is whether we need to create a new relkind
at all. I'm prepared to believe that the answer is yes, but I'd like
to see a clear justification of why we can't use either 'v' or 'r'.
It seems to me that a materialized view is a lot like a regular old
table with a special rewrite rule attached to it somewhere.
> b) create MV syntax?
> - CREATE MATERIALIZED VIEW mvname AS ..., I think it is quite
> obvious to do so, but I had to ask
I think that's OK.
> c) refresh command syntax?
> 1 - ALTER MATERIALIZED VIEW mvname REFRESH
> or
> 2 - REFRESH MATERIALIZED VIEW mvname
1.
> d) what to do when someone use INSERT, UPDATE or DELETE against MV?
> 1 - raise error? - I prefer this option
> 2 - let commands change MV? (no chance to let changes propagate to
> source tables, not for this summer :)
> if pg lets user to DML against MV, I expect that triggers should work too
1.
> e) what to do when someone drop table or column?
> - it behave like it was a classic view. Fire error and hint
> - CASCADE option will remove MV
Agree.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise Postgres Company