summaryrefslogtreecommitdiff
path: root/src/backend/parser
diff options
context:
space:
mode:
authorKevin Grittner2013-07-16 17:55:44 +0000
committerKevin Grittner2013-07-16 17:55:44 +0000
commitcc1965a99bf87005f431804bbda0f723887a04d6 (patch)
tree694801e2e7a34a1247ad7858b9c81ff16a90ac39 /src/backend/parser
parent7f7485a0cde92aa4ba235a1ffe4dda0ca0b6cc9a (diff)
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.
Diffstat (limited to 'src/backend/parser')
-rw-r--r--src/backend/parser/gram.y7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index f67ef0c9ca..5e9b3eda92 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -3301,11 +3301,12 @@ OptNoLog: UNLOGGED { $$ = RELPERSISTENCE_UNLOGGED; }
*****************************************************************************/
RefreshMatViewStmt:
- REFRESH MATERIALIZED VIEW qualified_name opt_with_data
+ REFRESH MATERIALIZED VIEW opt_concurrently qualified_name opt_with_data
{
RefreshMatViewStmt *n = makeNode(RefreshMatViewStmt);
- n->relation = $4;
- n->skipData = !($5);
+ n->concurrent = $4;
+ n->relation = $5;
+ n->skipData = !($6);
$$ = (Node *) n;
}
;