Previously even if recovery_target_action was set to pause and the recovery target was reached, the recovery could never be paused. Because the setting of pause was *always* overridden with that of shutdown unexpectedly. This override is valid and intentional if hot_standby is not enabled because there is no way to resume the paused recovery in this case and the setting of pause is completely useless. But not if hot_standby is enabled.
This patch changes the code so that the setting of pause is overridden with that of shutdown only when hot_standby is not enabled.
Bug reported by Andres Freund
Note for archives: this is a bug, not a change in behaviour.
The original coding of standbyState == STANDBY_DISABLED
wasn't correct because standbyState > STANDBY_DISABLED only after we run InitRecoveryTransactionEnvironment() which happens later than this parameter check.
--
Simon Riggs http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services