Fix inappropriate error messages for Hot Standby misconfiguration errors.
authorTom Lane
Thu, 6 Sep 2012 01:49:18 +0000 (21:49 -0400)
committerTom Lane
Thu, 6 Sep 2012 01:49:18 +0000 (21:49 -0400)
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

src/backend/access/transam/xlog.c

index 9a9b04f242224c190d93be335e38ca8f5f5e5d3d..bdbeb84095755c3d1084e9abc64f9d5a5f4be18f 100644 (file)
@@ -5645,9 +5645,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, \
@@ -5688,10 +5689,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);
    }