Hi
In playing with materialized views, I noticed that they still seem to
have an _RETURN rule implicitly created like a regular view. This
doesn't seem right to me - is there a reason?
viper:~ dpage$ /usr/local/pgsql-9.3/bin/psql -p 5433 -U postgres
psql (9.3beta1)
Type "help" for help.
postgres=# CREATE MATERIALIZED VIEW ruletest AS SELECT * FROM pg_class;
SELECT 298
postgres=# SELECT pg_get_ruledef(oid) FROM pg_rewrite WHERE ev_class =
'ruletest'::regclass; pg_get_ruledef
-----------------------------------------------------------------CREATE RULE "_RETURN" AS
+ ON SELECT TO ruletest DO INSTEAD SELECT pg_class.relname, + pg_class.relnamespace,
+ pg_class.reltype, + pg_class.reloftype,
+ pg_class.relowner, + pg_class.relam,
+ pg_class.relfilenode, +
pg_class.reltablespace, + pg_class.relpages,
+ pg_class.reltuples, + pg_class.relallvisible,
+ pg_class.reltoastrelid, + pg_class.reltoastidxid,
+ pg_class.relhasindex, + pg_class.relisshared,
+ pg_class.relpersistence, + pg_class.relkind,
+ pg_class.relnatts, + pg_class.relchecks,
+ pg_class.relhasoids, +
pg_class.relhaspkey, + pg_class.relhasrules,
+ pg_class.relhastriggers, + pg_class.relhassubclass,
+ pg_class.relispopulated, + pg_class.relfrozenxid,
+ pg_class.relminmxid, + pg_class.relacl,
+ pg_class.reloptions + FROM pg_class;
(1 row)
--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company