diff --git a/src/backend/commands/matview.c b/src/backend/commands/matview.c index e040bedb7e5c717ce962dd78aad99da5e9604270..6a0643828a4f728689c9c3057cb10a459b372823 100644 --- a/src/backend/commands/matview.c +++ b/src/backend/commands/matview.c @@ -14,6 +14,7 @@ */ #include "postgres.h" +#include "access/heapam_xlog.h" #include "access/multixact.h" #include "access/relscan.h" #include "access/xact.h" @@ -68,10 +69,15 @@ SetRelationIsScannable(Relation relation) Assert(relation->rd_rel->relkind == RELKIND_MATVIEW); Assert(relation->rd_isscannable == false); - RelationOpenSmgr(relation); page = (Page) palloc(BLCKSZ); PageInit(page, BLCKSZ, 0); + + if (RelationNeedsWAL(relation)) + log_newpage(&(relation->rd_node), MAIN_FORKNUM, 0, page); + + RelationOpenSmgr(relation); smgrextend(relation->rd_smgr, MAIN_FORKNUM, 0, (char *) page, true); + pfree(page); smgrimmedsync(relation->rd_smgr, MAIN_FORKNUM);