Move materialized views' is-populated status into their pg_class entries.

Tom Lane <tgl@sss.pgh.pa.us>

Commit: 1d6c72a55b23554cfb946527dc77f9d80044ae2c
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2013-05-06T17:27:22Z
Releases: 9.3.0
Move materialized views' is-populated status into their pg_class entries.

Previously this state was represented by whether the view's disk file had
zero or nonzero size, which is problematic for numerous reasons, since it's
breaking a fundamental assumption about heap storage.  This was done to
allow unlogged matviews to revert to unpopulated status after a crash
despite our lack of any ability to update catalog entries post-crash.
However, this poses enough risk of future problems that it seems better to
not support unlogged matviews until we can find another way.  Accordingly,
revert that choice as well as a number of existing kluges forced by it
in favor of creating a pg_class.relispopulated flag column.

Files