]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Remove dead forceSync parameter of XactLogCommitRecord().
authorNoah Misch <noah@leadboat.com>
Sat, 20 Jun 2020 08:25:40 +0000 (01:25 -0700)
committerNoah Misch <noah@leadboat.com>
Sat, 20 Jun 2020 08:25:40 +0000 (01:25 -0700)
The function has been reading global variable forceSyncCommit, mirroring
the intent of the caller that passed forceSync=forceSyncCommit.  The
other caller, RecordTransactionCommitPrepared(), passed false.  Since
COMMIT PREPARED can't share a transaction with any command, it certainly
doesn't share a transaction with a command that sets forceSyncCommit.

Reviewed by Michael Paquier.

Discussion: https://postgr.es/m/20200617032615.GC2916904@rfd.leadboat.com

src/backend/access/transam/twophase.c
src/backend/access/transam/xact.c
src/include/access/xact.h

index 54fb6cc047454dd5374c118488a6925b1f892640..9b2e59bf0ec187effcfd63b776f4704446de421b 100644 (file)
@@ -2217,7 +2217,7 @@ RecordTransactionCommitPrepared(TransactionId xid,
        recptr = XactLogCommitRecord(committs,
                                                                 nchildren, children, nrels, rels,
                                                                 ninvalmsgs, invalmsgs,
-                                                                initfileinval, false,
+                                                                initfileinval,
                                                                 MyXactFlags | XACT_FLAGS_ACQUIREDACCESSEXCLUSIVELOCK,
                                                                 xid, gid);
 
index cd30b62d365d85360e4ac881d36db6ac2a2663f1..905dc7d8d3bc0303af6f208893bef176b6db6353 100644 (file)
@@ -1048,7 +1048,9 @@ CommandCounterIncrement(void)
  * ForceSyncCommit
  *
  * Interface routine to allow commands to force a synchronous commit of the
- * current top-level transaction
+ * current top-level transaction.  Currently, two-phase commit does not
+ * persist and restore this variable.  So long as all callers use
+ * PreventInTransactionBlock(), that omission has no consequences.
  */
 void
 ForceSyncCommit(void)
@@ -1315,7 +1317,7 @@ RecordTransactionCommit(void)
                XactLogCommitRecord(xactStopTimestamp,
                                                        nchildren, children, nrels, rels,
                                                        nmsgs, invalMessages,
-                                                       RelcacheInitFileInval, forceSyncCommit,
+                                                       RelcacheInitFileInval,
                                                        MyXactFlags,
                                                        InvalidTransactionId, NULL /* plain commit */ );
 
@@ -5468,7 +5470,7 @@ XactLogCommitRecord(TimestampTz commit_time,
                                        int nsubxacts, TransactionId *subxacts,
                                        int nrels, RelFileNode *rels,
                                        int nmsgs, SharedInvalidationMessage *msgs,
-                                       bool relcacheInval, bool forceSync,
+                                       bool relcacheInval,
                                        int xactflags, TransactionId twophase_xid,
                                        const char *twophase_gid)
 {
index 88025b1cc2f9cbbb0adcdc72d5be924a767ed032..db191879b9d228a9f4f03768223567eafacb94c5 100644 (file)
@@ -434,7 +434,7 @@ extern XLogRecPtr XactLogCommitRecord(TimestampTz commit_time,
                                                                          int nsubxacts, TransactionId *subxacts,
                                                                          int nrels, RelFileNode *rels,
                                                                          int nmsgs, SharedInvalidationMessage *msgs,
-                                                                         bool relcacheInval, bool forceSync,
+                                                                         bool relcacheInval,
                                                                          int xactflags,
                                                                          TransactionId twophase_xid,
                                                                          const char *twophase_gid);