diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index 0d3a74ea372..359d478592b 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -8784,9 +8784,10 @@ copy_relation_data(SMgrRelation src, SMgrRelation dst, pfree(buf); /* - * If the rel isn't temp, we must fsync it down to disk before it's safe - * to commit the transaction. (For a temp rel we don't care since the rel - * will be uninteresting after a crash anyway.) + * If the rel is WAL-logged, must fsync before commit. We use heap_sync + * to ensure that the toast table gets fsync'd too. (For a temp or + * unlogged rel we don't care since the data will be gone after a crash + * anyway.) * * It's obvious that we must do this when not WAL-logging the copy. It's * less obvious that we have to do it even if we did WAL-log the copied diff --git a/src/backend/storage/file/reinit.c b/src/backend/storage/file/reinit.c index 1912dd8e7ae..0e2f824a885 100644 --- a/src/backend/storage/file/reinit.c +++ b/src/backend/storage/file/reinit.c @@ -337,7 +337,6 @@ ResetUnloggedRelationsInDbspaceDir(const char *dbspacedirname, int op) copy_file(srcpath, dstpath); } - /* Done with the first pass. */ FreeDir(dbspace_dir); } }