| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> | 
|---|---|
| To: | pgsql-committers(at)postgresql(dot)org | 
| Subject: | pgsql: Move materialized views' is-populated status into their pg_class | 
| Date: | 2013-05-06 17:27:38 | 
| Message-ID: | [email protected] | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-committers | 
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.
Branch
------
master
Details
-------
http://git.postgresql.org/pg/commitdiff/1d6c72a55b23554cfb946527dc77f9d80044ae2c
Modified Files
--------------
doc/src/sgml/catalogs.sgml            |   14 +++++-
doc/src/sgml/func.sgml                |    9 ----
src/backend/catalog/heap.c            |   21 +----------
src/backend/catalog/system_views.sql  |    2 +-
src/backend/commands/cluster.c        |    7 +---
src/backend/commands/createas.c       |   11 +++--
src/backend/commands/matview.c        |   68 +++++++++++++++++++-------------
src/backend/commands/vacuumlazy.c     |    6 ---
src/backend/utils/adt/dbsize.c        |   27 -------------
src/backend/utils/cache/relcache.c    |   34 ++++------------
src/bin/pg_dump/pg_dump.c             |   54 +++++++++++++++++---------
src/bin/pg_dump/pg_dump.h             |    2 +-
src/include/catalog/catversion.h      |    2 +-
src/include/catalog/heap.h            |    1 -
src/include/catalog/pg_class.h        |   20 +++++----
src/include/catalog/pg_proc.h         |    2 -
src/include/commands/matview.h        |    2 +-
src/include/utils/builtins.h          |    1 -
src/include/utils/rel.h               |   11 ++++-
src/test/regress/expected/matview.out |   18 ++++----
src/test/regress/expected/rules.out   |    2 +-
src/test/regress/sql/matview.sql      |    6 +-
22 files changed, 141 insertions(+), 179 deletions(-)
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2013-05-06 20:02:46 | pgsql: Desultory copy-editing of the 9.3 release notes. | 
| Previous Message | Tom Lane | 2013-05-06 16:28:19 | pgsql: Back out some recent translation updates. |