On 2013-02-21 07:10:09 -0800, Kevin Grittner wrote: > Andres Freund <and...@2ndquadrant.com> wrote: > > giving an error so its an easy to find distinction to a normal > > table seems like a good idea. > > I'm not sure I understood your concerns entirely, but wonder > whether this helps?:
To explain it a bit: I assume that at some point matviews will get (auto-)updateable, just as normal views recently got. In that case application programmers might not be aware anymore that something is a view either because they just don't know or because a table got converted into a matview after the code was written. Because of the potential wish for transparency (with security views as a potential user) at least normal views might get the capability to be TRUNCATEd directly, so it might be that matviews do as well. > test=# \d > List of relations > Schema | Name | Type | Owner > --------+-------+-------------------+--------- > public | bb | materialized view | kgrittn > public | t | table | kgrittn > public | tm | materialized view | kgrittn > public | tmm | materialized view | kgrittn > public | tv | view | kgrittn > public | tvmm | materialized view | kgrittn > public | tvv | view | kgrittn > public | tvvm | materialized view | kgrittn > public | tvvmv | view | kgrittn > (9 rows) > > test=# truncate table tm; > ERROR: "tm" is not a table > test=# truncate materialized view t; > ERROR: "t" is not a materialized view > test=# truncate materialized view tm; > TRUNCATE TABLE > test=# truncate table t; > TRUNCATE TABLE Thats not bad. But what if we allow TRUNCATE on views someday (possibly only if a truncate trigger is defined). For consistency we might also want that on matvies. Having a difference between TRUNCATE view; and TRUNCATE MATERIALIZED VIEW; in that case sounds ugly to me. What about DISABLE? DISCARD or DEALLOCATE would also be nice but it seems hard to fit that into existing syntax. Greetings, Andres Freund -- Andres Freund http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers