Remove unnecessary smgrimmedsync() when creating unlogged table.
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Fri, 15 Sep 2023 14:29:37 +0000 (17:29 +0300)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Fri, 15 Sep 2023 14:29:37 +0000 (17:29 +0300)
commit18724af9e83bb9123e0e1cd09751aef4ba30039e
treea6b3d964a7206cf71c99cb6302f5efafe928ab61
parentb0ec61c9c27fb932ae6524f92a18e0d1fadbc144
Remove unnecessary smgrimmedsync() when creating unlogged table.

This became safe after commit 4b4798e138. The smgrcreate() call will
now register the segment for syncing at the next checkpoint, so we
don't need to sync it here. If a checkpoint happens before the
creation is WAL-logged, the records will be replayed when starting
recovery from the checkpoint. If a checkpoint happens after the WAL
logging, the checkpoint will fsync() it.

In the passing, clarify a comment in smgrDoPendingSyncs().

Discussion: https://www.postgresql.org/message-id/6e5bbc08-cdfc-b2b3-9e23-1a914b9850a9%40iki.fi
Reviewed-by: Robert Haas
src/backend/access/heap/heapam_handler.c
src/backend/catalog/storage.c