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);