Improve validation of recovery_target_xid GUC values. Previously, the recovery_target_xid GUC values were not sufficiently validated. As a result, clearly invalid inputs such as the string "bogus", a decimal value like "1.1", or 0 (a transaction ID smaller than the minimum valid value of 3) were unexpectedly accepted. In these cases, the value was interpreted as transaction ID 0, which could cause recovery to behave unexpectedly.
This commit improves validation of recovery_target_xid GUC so that invalid values are rejected with an error. This prevents recovery from proceeding with misconfigured recovery_target_xid settings. Also this commit updates the documentation to clarify the allowed values for recovery_target_xid GUC. Author: David Steele <[email protected]> Reviewed-by: Hüseyin Demir <[email protected]> Reviewed-by: Fujii Masao <[email protected]> Reviewed-by: Michael Paquier <[email protected]> Discussion: https://postgr.es/m/[email protected] Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/bffd7130e942e2bd45153ab09e5fab70e74ece58 Modified Files -------------- doc/src/sgml/config.sgml | 15 ++++++++++++++ src/backend/access/transam/xlogrecovery.c | 31 +++++++++++++++++++++++++++-- src/test/recovery/t/003_recovery_targets.pl | 22 ++++++++++++++++++++ 3 files changed, 66 insertions(+), 2 deletions(-)
