/* * This must be called ONCE during postmaster or standalone-backend startup, * after recovery has finished. */ void CompleteCommitTsInitialization(void) { /* * If the feature is not enabled, turn it off for good. This also removes * any leftover data. */ if (!track_commit_timestamp) DeactivateCommitTs(); }
/* * This must be called ONCE during postmaster or standalone-backend startup, * after recovery has finished. */ void CompleteCommitTsInitialization(void) { /* * If the feature is not enabled, turn it off for good. This also removes * any leftover data. * * Conversely, we activate the module if the feature is enabled. This is * necessary for primary and standby as the activation depends on the * control file contents at the beginning of recovery or when a * XLOG_PARAMETER_CHANGE is replayed. */ if (!track_commit_timestamp) DeactivateCommitTs(); else ActivateCommitTs(); }
/* * This must be called ONCE during postmaster or standalone-backend startup, * after recovery has finished. */ void CompleteCommitTsInitialization(void) { /* * If the feature is not enabled, turn it off for good. This also removes * any leftover data. * * Conversely, we activate the module if the feature is enabled. This is * not necessary in a master system because we already did it earlier, but * if we're in a standby server that got promoted which had the feature * enabled and was following a master that had the feature disabled, this * is where we turn it on locally. */ if (!track_commit_timestamp) DeactivateCommitTs(); else ActivateCommitTs(); }
/* * Activate or deactivate CommitTs' upon reception of a XLOG_PARAMETER_CHANGE * XLog record in a standby. */ void CommitTsParameterChange(bool newvalue, bool oldvalue) { /* * If the commit_ts module is disabled in this server and we get word from * the master server that it is enabled there, activate it so that we can * replay future WAL records involving it; also mark it as active on * pg_control. If the old value was already set, we already did this, so * don't do anything. * * If the module is disabled in the master, disable it here too, unless * the module is enabled locally. */ if (newvalue) { if (!commitTsShared->commitTsActive) ActivateCommitTs(); } else if (commitTsShared->commitTsActive) DeactivateCommitTs(); }