mirror of
https://github.com/postgres/postgres.git
synced 2025-07-31 22:04:40 +03:00
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
.
This commit is contained in:
@ -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;
|
||||
}
|
||||
;
|
||||
|
Reference in New Issue
Block a user