diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2013-05-06 13:26:51 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2013-05-06 13:27:22 -0400 |
commit | 1d6c72a55b23554cfb946527dc77f9d80044ae2c (patch) | |
tree | 8f7964a0114022585c1a0d90f37d2fd466bb6154 /src/backend/commands/vacuumlazy.c | |
parent | 5da5798004e90b14332918e7db702271442d465d (diff) | |
download | postgresql-1d6c72a55b23554cfb946527dc77f9d80044ae2c.tar.gz postgresql-1d6c72a55b23554cfb946527dc77f9d80044ae2c.zip |
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.
Diffstat (limited to 'src/backend/commands/vacuumlazy.c')
-rw-r--r-- | src/backend/commands/vacuumlazy.c | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c index 02f3cf3c205..9d304153b8b 100644 --- a/src/backend/commands/vacuumlazy.c +++ b/src/backend/commands/vacuumlazy.c @@ -230,13 +230,7 @@ lazy_vacuum_rel(Relation onerel, VacuumStmt *vacstmt, * * Don't even think about it unless we have a shot at releasing a goodly * number of pages. Otherwise, the time taken isn't worth it. - * - * Leave a populated materialized view with at least one page. */ - if (onerel->rd_rel->relkind == RELKIND_MATVIEW && - vacrelstats->nonempty_pages == 0) - vacrelstats->nonempty_pages = 1; - possibly_freeable = vacrelstats->rel_pages - vacrelstats->nonempty_pages; if (possibly_freeable > 0 && (possibly_freeable >= REL_TRUNCATE_MINIMUM || |