On 2015-03-12 15:52:02 +0100, Andres Freund wrote: > /* > * Override any inconsistent requests. Not that this is a change > * of behaviour in 9.5; prior to this we simply ignored a request > * to pause if hot_standby = off, which was surprising behaviour. > */ > if (recoveryTargetAction == RECOVERY_TARGET_ACTION_PAUSE && > recoveryTargetActionSet && > standbyState == STANDBY_DISABLED) > recoveryTargetAction = RECOVERY_TARGET_ACTION_SHUTDOWN;
While it's easy enough to fix I rather dislike the whole intent here though. *Silently* switching the mode of operation in a rather significant way seems like a bad idea to me. At the very least we need to emit a LOG message about this; but I think it'd be much better to error out instead.
<9.5's behaviour was already quite surprising. But changing things to a different surprising behaviour seems like a bad idea.
+1. Especially for "sensitive" operations like this, having predictable-behavior-or-error is usually the best choice.