From 7032e38cb63221100612212cc7c48faa7aa75df1 Mon Sep 17 00:00:00 2001 From: Konstantin Knizhnik Date: Tue, 19 Sep 2023 21:42:52 +0300 Subject: [PATCH] Upadte last written LSN after walloging all createdb stuff --- src/backend/commands/dbcommands.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c index bd139e65e2a..9eb51bbdbd4 100644 --- a/src/backend/commands/dbcommands.c +++ b/src/backend/commands/dbcommands.c @@ -486,8 +486,6 @@ CreateDirAndVersionFile(char *dbpath, Oid dbid, Oid tsid, bool isRedo) lsn = XLogInsert(RM_DBASE_ID, XLOG_DBASE_CREATE_WAL_LOG); - SetLastWrittenLSNForDatabase(lsn); - /* As always, WAL must hit the disk before the data update does. */ XLogFlush(lsn); } @@ -615,7 +613,6 @@ CreateDatabaseUsingFileCopy(Oid src_dboid, Oid dst_dboid, Oid src_tsid, /* Record the filesystem change in XLOG */ { xl_dbase_create_file_copy_rec xlrec; - XLogRecPtr lsn; xlrec.db_id = dst_dboid; xlrec.tablespace_id = dsttablespace; @@ -626,10 +623,8 @@ CreateDatabaseUsingFileCopy(Oid src_dboid, Oid dst_dboid, Oid src_tsid, XLogRegisterData((char *) &xlrec, sizeof(xl_dbase_create_file_copy_rec)); - lsn = XLogInsert(RM_DBASE_ID, + (void) XLogInsert(RM_DBASE_ID, XLOG_DBASE_CREATE_FILE_COPY | XLR_SPECIAL_REL_UPDATE); - - SetLastWrittenLSNForDatabase(lsn); } pfree(srcpath); pfree(dstpath); @@ -1403,6 +1398,11 @@ createdb(ParseState *pstate, const CreatedbStmt *stmt) CreateDatabaseUsingFileCopy(src_dboid, dboid, src_deftablespace, dst_deftablespace); + /* + * Update global last written LSN after wal-logging create database command + */ + SetLastWrittenLSNForDatabase(XactLastRecEnd); + /* * Close pg_database, but keep lock till commit. */