aboutsummaryrefslogtreecommitdiff
path: root/src/backend/access/heap/rewriteheap.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/access/heap/rewriteheap.c')
-rw-r--r--src/backend/access/heap/rewriteheap.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/backend/access/heap/rewriteheap.c b/src/backend/access/heap/rewriteheap.c
index 39e33763df4..56c61234bd2 100644
--- a/src/backend/access/heap/rewriteheap.c
+++ b/src/backend/access/heap/rewriteheap.c
@@ -324,10 +324,10 @@ end_heap_rewrite(RewriteState state)
state->rs_blockno,
state->rs_buffer,
true);
- RelationOpenSmgr(state->rs_new_rel);
PageSetChecksumInplace(state->rs_buffer, state->rs_blockno);
+ RelationOpenSmgr(state->rs_new_rel);
smgrextend(state->rs_new_rel->rd_smgr, MAIN_FORKNUM, state->rs_blockno,
(char *) state->rs_buffer, true);
}
@@ -340,7 +340,11 @@ end_heap_rewrite(RewriteState state)
* wrote before the checkpoint.
*/
if (RelationNeedsWAL(state->rs_new_rel))
+ {
+ /* for an empty table, this could be first smgr access */
+ RelationOpenSmgr(state->rs_new_rel);
smgrimmedsync(state->rs_new_rel->rd_smgr, MAIN_FORKNUM);
+ }
logical_end_heap_rewrite(state);