Add support for REFRESH MATERIALIZED VIEW CONCURRENTLY.
This allows reads to continue without any blocking while a REFRESH
runs. The new data appears atomically as part of transaction
commit.
Review questioned the Assert that a matview was not a system
relation. This will be addressed separately.
Reviewed by Hitoshi Harada, Robert Haas, Andres Freund.
Merged after review with security patch f3ab5d4.
Branch
------
master
Details
-------
http://git.postgresql.org/pg/commitdiff/cc1965a99bf87005f431804bbda0f723887a04d6
Modified Files
--------------
doc/src/sgml/mvcc.sgml | 3 +-
doc/src/sgml/ref/refresh_materialized_view.sgml | 34 +-
src/backend/commands/cluster.c | 27 +-
src/backend/commands/matview.c | 524 +++++++++++++++++++++--
src/backend/commands/tablecmds.c | 3 +-
src/backend/executor/execMain.c | 10 +-
src/backend/executor/nodeModifyTable.c | 5 +-
src/backend/nodes/copyfuncs.c | 1 +
src/backend/nodes/equalfuncs.c | 1 +
src/backend/parser/gram.y | 7 +-
src/bin/psql/tab-complete.c | 17 +
src/include/commands/cluster.h | 3 +-
src/include/commands/matview.h | 2 +
src/include/nodes/parsenodes.h | 1 +
src/test/regress/expected/matview.out | 38 +-
src/test/regress/sql/matview.sql | 29 +-
16 files changed, 646 insertions(+), 59 deletions(-)