Fix inappropriate error messages for Hot Standby misconfiguration errors.

Give the correct name of the GUC parameter being complained of.
Also, emit a more suitable SQLSTATE (INVALID_PARAMETER_VALUE,
not the default INTERNAL_ERROR).

Gurjeet Singh, errcode adjustment by me
This commit is contained in:
Tom Lane 2012-09-05 21:49:14 -04:00
parent 26f4fc0184
commit 18730f8d47

View File

@ -5944,9 +5944,10 @@ GetXLogReceiptTime(TimestampTz *rtime, bool *fromStream)
*/
#define RecoveryRequiresIntParameter(param_name, currValue, minValue) \
do { \
if (currValue < minValue) \
if ((currValue) < (minValue)) \
ereport(ERROR, \
(errmsg("hot standby is not possible because " \
(errcode(ERRCODE_INVALID_PARAMETER_VALUE), \
errmsg("hot standby is not possible because " \
"%s = %d is a lower setting than on the master server " \
"(its value was %d)", \
param_name, \
@ -5987,10 +5988,10 @@ CheckRequiredParameterValues(void)
RecoveryRequiresIntParameter("max_connections",
MaxConnections,
ControlFile->MaxConnections);
RecoveryRequiresIntParameter("max_prepared_xacts",
RecoveryRequiresIntParameter("max_prepared_transactions",
max_prepared_xacts,
ControlFile->max_prepared_xacts);
RecoveryRequiresIntParameter("max_locks_per_xact",
RecoveryRequiresIntParameter("max_locks_per_transaction",
max_locks_per_xact,
ControlFile->max_locks_per_xact);
}