Message style improvements
authorPeter Eisentraut <peter@eisentraut.org>
Thu, 29 Aug 2024 12:43:34 +0000 (14:43 +0200)
committerPeter Eisentraut <peter@eisentraut.org>
Thu, 29 Aug 2024 12:43:34 +0000 (14:43 +0200)
23 files changed:
src/backend/access/transam/varsup.c
src/backend/access/transam/xact.c
src/backend/backup/basebackup_incremental.c
src/backend/commands/copyfromparse.c
src/backend/commands/subscriptioncmds.c
src/backend/commands/tablecmds.c
src/backend/postmaster/walsummarizer.c
src/backend/replication/logical/logical.c
src/backend/replication/logical/slotsync.c
src/backend/replication/pgoutput/pgoutput.c
src/backend/replication/slot.c
src/backend/rewrite/rewriteHandler.c
src/backend/utils/adt/jsonpath_exec.c
src/backend/utils/misc/guc_tables.c
src/bin/pg_basebackup/t/010_pg_basebackup.pl
src/common/parse_manifest.c
src/test/recovery/t/040_standby_failover_slots_sync.pl
src/test/regress/expected/copy2.out
src/test/regress/expected/foreign_key.out
src/test/regress/expected/jsonb_jsonpath.out
src/test/regress/expected/sqljson_jsontable.out
src/test/regress/expected/sqljson_queryfuncs.out
src/test/regress/expected/updatable_views.out

index fb6a86afcb13410280f13b4becfdf51b289110ca..cfe8c6cf8dc0817cb9f7f215f1faa92fbf254a00 100644 (file)
@@ -153,14 +153,14 @@ GetNewTransactionId(bool isSubXact)
            if (oldest_datname)
                ereport(ERROR,
                        (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
-                        errmsg("database is not accepting commands that assign new XIDs to avoid wraparound data loss in database \"%s\"",
+                        errmsg("database is not accepting commands that assign new transaction IDs to avoid wraparound data loss in database \"%s\"",
                                oldest_datname),
                         errhint("Execute a database-wide VACUUM in that database.\n"
                                 "You might also need to commit or roll back old prepared transactions, or drop stale replication slots.")));
            else
                ereport(ERROR,
                        (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
-                        errmsg("database is not accepting commands that assign new XIDs to avoid wraparound data loss in database with OID %u",
+                        errmsg("database is not accepting commands that assign new transaction IDs to avoid wraparound data loss in database with OID %u",
                                oldest_datoid),
                         errhint("Execute a database-wide VACUUM in that database.\n"
                                 "You might also need to commit or roll back old prepared transactions, or drop stale replication slots.")));
@@ -175,7 +175,7 @@ GetNewTransactionId(bool isSubXact)
                        (errmsg("database \"%s\" must be vacuumed within %u transactions",
                                oldest_datname,
                                xidWrapLimit - xid),
-                        errhint("To avoid XID assignment failures, execute a database-wide VACUUM in that database.\n"
+                        errhint("To avoid transaction ID assignment failures, execute a database-wide VACUUM in that database.\n"
                                 "You might also need to commit or roll back old prepared transactions, or drop stale replication slots.")));
            else
                ereport(WARNING,
index dfc8cf2dcf223689ffcb608b88d1400f2a286d86..0fe1630fca84a43c7b0baa96158acdc9e5e55835 100644 (file)
@@ -648,7 +648,7 @@ AssignTransactionId(TransactionState s)
    if (IsInParallelMode() || IsParallelWorker())
        ereport(ERROR,
                (errcode(ERRCODE_INVALID_TRANSACTION_STATE),
-                errmsg("cannot assign XIDs during a parallel operation")));
+                errmsg("cannot assign transaction IDs during a parallel operation")));
 
    /*
     * Ensure parent(s) have XIDs, so that a child always has an XID later
index 86fa6821ad2be056a9f39dcb403e2980373efa1b..d45bb19c2ca158c1e8c008ac19778a95ab302e23 100644 (file)
@@ -953,7 +953,7 @@ manifest_process_system_identifier(JsonManifestParseContext *context,
 
    if (manifest_system_identifier != system_identifier)
        context->error_cb(context,
-                         "manifest system identifier is %llu, but database system identifier is %llu",
+                         "system identifier in backup manifest is %llu, but database system identifier is %llu",
                          (unsigned long long) manifest_system_identifier,
                          (unsigned long long) system_identifier);
 }
index 7efcb891598f05a4e936502bf2990aa9c71b4d55..97a4c387a3058290b74b25c7937e213b0e5119c0 100644 (file)
@@ -987,7 +987,7 @@ NextCopyFrom(CopyFromState cstate, ExprContext *econtext,
 
                        attval = CopyLimitPrintoutLength(cstate->cur_attval);
                        ereport(NOTICE,
-                               errmsg("skipping row due to data type incompatibility at line %llu for column %s: \"%s\"",
+                               errmsg("skipping row due to data type incompatibility at line %llu for column \"%s\": \"%s\"",
                                       (unsigned long long) cstate->cur_lineno,
                                       cstate->cur_attname,
                                       attval));
@@ -995,7 +995,7 @@ NextCopyFrom(CopyFromState cstate, ExprContext *econtext,
                    }
                    else
                        ereport(NOTICE,
-                               errmsg("skipping row due to data type incompatibility at line %llu for column %s: null input",
+                               errmsg("skipping row due to data type incompatibility at line %llu for column \"%s\": null input",
                                       (unsigned long long) cstate->cur_lineno,
                                       cstate->cur_attname));
 
index b925c464ae6249746e980229569b0c91525c39f3..02ccc636b807c973172a1f247259918ead19d6fb 100644 (file)
@@ -1098,7 +1098,7 @@ CheckAlterSubOption(Subscription *sub, const char *option,
    if (sub->enabled)
        ereport(ERROR,
                (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
-                errmsg("cannot set %s for enabled subscription",
+                errmsg("cannot set option \"%s\" for enabled subscription",
                        option)));
 
    if (slot_needs_update)
@@ -1112,7 +1112,7 @@ CheckAlterSubOption(Subscription *sub, const char *option,
        if (!sub->slotname)
            ereport(ERROR,
                    (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
-                    errmsg("cannot set %s for a subscription that does not have a slot name",
+                    errmsg("cannot set option \"%s\" for a subscription that does not have a slot name",
                            option)));
 
        /* The changed option of the slot can't be rolled back. */
index 70cd266916429373a86efdf0223ae9284e5ffd61..b3cc6f8f6904931c2516690b94b9e0d963acc7f9 100644 (file)
@@ -10713,7 +10713,7 @@ CloneFkReferencing(List **wqueue, Relation parentRel, Relation partRel)
        if (fk->confrelid == RelationGetRelid(partRel))
            ereport(ERROR,
                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                    errmsg("can't attach table \"%s\" as a partition which is referenced by foreign key \"%s\"",
+                    errmsg("cannot attach table \"%s\" as a partition because it is referenced by foreign key \"%s\"",
                            RelationGetRelationName(partRel),
                            get_constraint_name(fk->conoid))));
 
index daa79093821b986208a1aa7d43f482c001cc7039..c1bf4a70dd174d47b44319fdc194c280c05847fa 100644 (file)
@@ -752,9 +752,11 @@ WaitForWalSummarization(XLogRecPtr lsn)
                                                current_time) / 1000;
            ereport(WARNING,
                    (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
-                    errmsg("still waiting for WAL summarization through %X/%X after %ld seconds",
-                           LSN_FORMAT_ARGS(lsn),
-                           elapsed_seconds),
+                    errmsg_plural("still waiting for WAL summarization through %X/%X after %ld second",
+                                  "still waiting for WAL summarization through %X/%X after %ld seconds",
+                                  elapsed_seconds,
+                                  LSN_FORMAT_ARGS(lsn),
+                                  elapsed_seconds),
                     errdetail("Summarization has reached %X/%X on disk and %X/%X in memory.",
                               LSN_FORMAT_ARGS(summarized_lsn),
                               LSN_FORMAT_ARGS(pending_lsn))));
index f8ef5d56d2693b1cabacdc519ff478a337e91851..3fe1774a1e91deeda6f1b63b0d794dc6de74ae63 100644 (file)
@@ -539,7 +539,7 @@ CreateDecodingContext(XLogRecPtr start_lsn,
                errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
                errmsg("cannot use replication slot \"%s\" for logical decoding",
                       NameStr(slot->data.name)),
-               errdetail("This slot is being synchronized from the primary server."),
+               errdetail("This replication slot is being synchronized from the primary server."),
                errhint("Specify another replication slot."));
 
    /*
index 76de017635fc44a6f3533b82e5fe5baa2449f826..51072297fd3802923f278a279cb82349ff4ce1f7 100644 (file)
@@ -212,9 +212,9 @@ update_local_synced_slot(RemoteSlot *remote_slot, Oid remote_dbid,
         * impact the users, so we used DEBUG1 level to log the message.
         */
        ereport(slot->data.persistency == RS_TEMPORARY ? LOG : DEBUG1,
-               errmsg("could not sync slot \"%s\" as remote slot precedes local slot",
+               errmsg("could not synchronize replication slot \"%s\" because remote slot precedes local slot",
                       remote_slot->name),
-               errdetail("Remote slot has LSN %X/%X and catalog xmin %u, but local slot has LSN %X/%X and catalog xmin %u.",
+               errdetail("The remote slot has LSN %X/%X and catalog xmin %u, but the local slot has LSN %X/%X and catalog xmin %u.",
                          LSN_FORMAT_ARGS(remote_slot->restart_lsn),
                          remote_slot->catalog_xmin,
                          LSN_FORMAT_ARGS(slot->data.restart_lsn),
@@ -456,7 +456,7 @@ drop_local_obsolete_slots(List *remote_slot_list)
                               0, AccessShareLock);
 
            ereport(LOG,
-                   errmsg("dropped replication slot \"%s\" of dbid %u",
+                   errmsg("dropped replication slot \"%s\" of database with OID %u",
                           NameStr(local_slot->data.name),
                           local_slot->data.database));
        }
@@ -576,8 +576,8 @@ update_and_persist_local_synced_slot(RemoteSlot *remote_slot, Oid remote_dbid)
    if (!found_consistent_snapshot)
    {
        ereport(LOG,
-               errmsg("could not sync slot \"%s\"", remote_slot->name),
-               errdetail("Logical decoding cannot find consistent point from local slot's LSN %X/%X.",
+               errmsg("could not synchronize replication slot \"%s\"", remote_slot->name),
+               errdetail("Logical decoding could not find consistent point from local slot's LSN %X/%X.",
                          LSN_FORMAT_ARGS(slot->data.restart_lsn)));
 
        return false;
@@ -586,7 +586,7 @@ update_and_persist_local_synced_slot(RemoteSlot *remote_slot, Oid remote_dbid)
    ReplicationSlotPersist();
 
    ereport(LOG,
-           errmsg("newly created slot \"%s\" is sync-ready now",
+           errmsg("newly created replication slot \"%s\" is sync-ready now",
                   remote_slot->name));
 
    return true;
@@ -625,7 +625,7 @@ synchronize_one_slot(RemoteSlot *remote_slot, Oid remote_dbid)
         */
        ereport(AmLogicalSlotSyncWorkerProcess() ? LOG : ERROR,
                errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
-               errmsg("skipping slot synchronization as the received slot sync"
+               errmsg("skipping slot synchronization because the received slot sync"
                       " LSN %X/%X for slot \"%s\" is ahead of the standby position %X/%X",
                       LSN_FORMAT_ARGS(remote_slot->confirmed_lsn),
                       remote_slot->name,
@@ -992,10 +992,9 @@ validate_remote_info(WalReceiverConn *wrconn)
    if (!primary_slot_valid)
        ereport(ERROR,
                errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-               errmsg("slot synchronization requires valid primary_slot_name"),
        /* translator: second %s is a GUC variable name */
-               errdetail("The replication slot \"%s\" specified by %s does not exist on the primary server.",
-                         PrimarySlotName, "primary_slot_name"));
+               errmsg("replication slot \"%s\" specified by \"%s\" does not exist on primary server",
+                      PrimarySlotName, "primary_slot_name"));
 
    ExecClearTuple(tupslot);
    walrcv_clear_result(res);
@@ -1022,9 +1021,13 @@ CheckAndGetDbnameFromConninfo(void)
    if (dbname == NULL)
        ereport(ERROR,
                errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-       /* translator: dbname is a specific option; %s is a GUC variable name */
-               errmsg("slot synchronization requires dbname to be specified in %s",
-                      "primary_conninfo"));
+
+       /*
+        * translator: first %s is a connection option; second %s is a GUC
+        * variable name
+        */
+               errmsg("replication slot synchronization requires \"%s\" to be specified in \"%s\"",
+                      "dbname", "primary_conninfo"));
    return dbname;
 }
 
@@ -1044,7 +1047,7 @@ ValidateSlotSyncParams(int elevel)
    if (wal_level < WAL_LEVEL_LOGICAL)
        ereport(ERROR,
                errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-               errmsg("slot synchronization requires \"wal_level\" >= \"logical\""));
+               errmsg("replication slot synchronization requires \"wal_level\" >= \"logical\""));
 
    /*
     * A physical replication slot(primary_slot_name) is required on the
@@ -1057,7 +1060,7 @@ ValidateSlotSyncParams(int elevel)
        ereport(elevel,
                errcode(ERRCODE_INVALID_PARAMETER_VALUE),
        /* translator: %s is a GUC variable name */
-               errmsg("slot synchronization requires %s to be defined", "primary_slot_name"));
+               errmsg("replication slot synchronization requires \"%s\" to be set", "primary_slot_name"));
        return false;
    }
 
@@ -1071,7 +1074,7 @@ ValidateSlotSyncParams(int elevel)
        ereport(elevel,
                errcode(ERRCODE_INVALID_PARAMETER_VALUE),
        /* translator: %s is a GUC variable name */
-               errmsg("slot synchronization requires %s to be enabled",
+               errmsg("replication slot synchronization requires \"%s\" to be enabled",
                       "hot_standby_feedback"));
        return false;
    }
@@ -1085,7 +1088,7 @@ ValidateSlotSyncParams(int elevel)
        ereport(elevel,
                errcode(ERRCODE_INVALID_PARAMETER_VALUE),
        /* translator: %s is a GUC variable name */
-               errmsg("slot synchronization requires %s to be defined",
+               errmsg("replication slot synchronization requires \"%s\" to be set",
                       "primary_conninfo"));
        return false;
    }
@@ -1123,7 +1126,7 @@ slotsync_reread_config(void)
    {
        ereport(LOG,
        /* translator: %s is a GUC variable name */
-               errmsg("slot sync worker will shutdown because %s is disabled", "sync_replication_slots"));
+               errmsg("replication slot synchronization worker will shut down because \"%s\" is disabled", "sync_replication_slots"));
        proc_exit(0);
    }
 
@@ -1132,7 +1135,7 @@ slotsync_reread_config(void)
        (old_hot_standby_feedback != hot_standby_feedback))
    {
        ereport(LOG,
-               errmsg("slot sync worker will restart because of a parameter change"));
+               errmsg("replication slot synchronization worker will restart because of a parameter change"));
 
        /*
         * Reset the last-start time for this worker so that the postmaster
@@ -1156,7 +1159,7 @@ ProcessSlotSyncInterrupts(WalReceiverConn *wrconn)
    if (ShutdownRequestPending)
    {
        ereport(LOG,
-               errmsg("slot sync worker is shutting down on receiving SIGINT"));
+               errmsg("replication slot synchronization worker is shutting down on receiving SIGINT"));
 
        proc_exit(0);
    }
index abef4eaf68befafc738395af92f0b71aab6e0183..00e7024563e6c8b439c25cb2ead62a07b41dcf78 100644 (file)
@@ -404,11 +404,11 @@ parse_output_parameters(List *options, PGOutputData *data)
    if (!protocol_version_given)
        ereport(ERROR,
                errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-               errmsg("proto_version option missing"));
+               errmsg("option \"%s\" missing", "proto_version"));
    if (!publication_names_given)
        ereport(ERROR,
                errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-               errmsg("publication_names option missing"));
+               errmsg("option \"%s\" missing", "publication_names"));
 }
 
 /*
index c290339af5f05f33ec9d8cfbc2fb3c713099d2ea..668b28ead79c82fd2db469d6d999360e1d091cea 100644 (file)
@@ -795,7 +795,7 @@ ReplicationSlotDrop(const char *name, bool nowait)
        ereport(ERROR,
                errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
                errmsg("cannot drop replication slot \"%s\"", name),
-               errdetail("This slot is being synced from the primary server."));
+               errdetail("This replication slot is being synchronized from the primary server."));
 
    ReplicationSlotDropAcquired();
 }
@@ -830,7 +830,7 @@ ReplicationSlotAlter(const char *name, const bool *failover,
            ereport(ERROR,
                    errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
                    errmsg("cannot alter replication slot \"%s\"", name),
-                   errdetail("This slot is being synced from the primary server."));
+                   errdetail("This replication slot is being synchronized from the primary server."));
 
        /*
         * Do not allow users to enable failover on the standby as we do not
@@ -2656,11 +2656,11 @@ StandbySlotsHaveCaughtup(XLogRecPtr wait_for_lsn, int elevel)
             */
            ereport(elevel,
                    errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-                   errmsg("replication slot \"%s\" specified in parameter %s does not exist",
+                   errmsg("replication slot \"%s\" specified in parameter \"%s\" does not exist",
                           name, "synchronized_standby_slots"),
-                   errdetail("Logical replication is waiting on the standby associated with \"%s\".",
+                   errdetail("Logical replication is waiting on the standby associated with replication slot \"%s\".",
                              name),
-                   errhint("Consider creating the slot \"%s\" or amend parameter %s.",
+                   errhint("Create the replication slot \"%s\" or amend parameter \"%s\".",
                            name, "synchronized_standby_slots"));
            break;
        }
@@ -2677,11 +2677,11 @@ StandbySlotsHaveCaughtup(XLogRecPtr wait_for_lsn, int elevel)
             */
            ereport(elevel,
                    errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-                   errmsg("cannot have logical replication slot \"%s\" in parameter %s",
+                   errmsg("cannot specify logical replication slot \"%s\" in parameter \"%s\"",
                           name, "synchronized_standby_slots"),
-                   errdetail("Logical replication is waiting for correction on \"%s\".",
+                   errdetail("Logical replication is waiting for correction on replication slot \"%s\".",
                              name),
-                   errhint("Consider removing logical slot \"%s\" from parameter %s.",
+                   errhint("Remove the logical replication slot \"%s\" from parameter \"%s\".",
                            name, "synchronized_standby_slots"));
            break;
        }
@@ -2697,11 +2697,11 @@ StandbySlotsHaveCaughtup(XLogRecPtr wait_for_lsn, int elevel)
            /* Specified physical slot has been invalidated */
            ereport(elevel,
                    errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
-                   errmsg("physical slot \"%s\" specified in parameter %s has been invalidated",
+                   errmsg("physical replication slot \"%s\" specified in parameter \"%s\" has been invalidated",
                           name, "synchronized_standby_slots"),
-                   errdetail("Logical replication is waiting on the standby associated with \"%s\".",
+                   errdetail("Logical replication is waiting on the standby associated with replication slot \"%s\".",
                              name),
-                   errhint("Consider dropping and recreating the slot \"%s\" or amend parameter %s.",
+                   errhint("Drop and recreate the replication slot \"%s\", or amend parameter \"%s\".",
                            name, "synchronized_standby_slots"));
            break;
        }
@@ -2712,11 +2712,11 @@ StandbySlotsHaveCaughtup(XLogRecPtr wait_for_lsn, int elevel)
            if (inactive)
                ereport(elevel,
                        errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
-                       errmsg("replication slot \"%s\" specified in parameter %s does not have active_pid",
+                       errmsg("replication slot \"%s\" specified in parameter \"%s\" does not have active_pid",
                               name, "synchronized_standby_slots"),
-                       errdetail("Logical replication is waiting on the standby associated with \"%s\".",
+                       errdetail("Logical replication is waiting on the standby associated with replication slot \"%s\".",
                                  name),
-                       errhint("Consider starting standby associated with \"%s\" or amend parameter %s.",
+                       errhint("Start the standby associated with the replication slot \"%s\", or amend parameter \"%s\".",
                                name, "synchronized_standby_slots"));
 
            /* Continue if the current slot hasn't caught up. */
index c223a2c50aff59f1bb1e07e1401a2e27fd349882..6d59a2bb8dcda4cd98fe4c38ceb90375e27f9070 100644 (file)
@@ -3362,7 +3362,7 @@ rewriteTargetView(Query *parsetree, Relation view)
                        errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
                        errmsg("cannot merge into view \"%s\"",
                               RelationGetRelationName(view)),
-                       errdetail("MERGE is not supported for views with INSTEAD OF triggers for some actions, but not others."),
+                       errdetail("MERGE is not supported for views with INSTEAD OF triggers for some actions but not all."),
                        errhint("To enable merging into the view, either provide a full set of INSTEAD OF triggers or drop the existing INSTEAD OF triggers."));
        }
    }
index c47221b7ee77eb0d6e465f7bee9c32089109d82a..e3ee0093d4d63d90758b5c3cefc0759d94bdd347 100644 (file)
@@ -1382,7 +1382,7 @@ executeItemOptUnwrapTarget(JsonPathExecContext *cxt, JsonPathItem *jsp,
                if (res == jperNotFound)
                    RETURN_ERROR(ereport(ERROR,
                                         (errcode(ERRCODE_NON_NUMERIC_SQL_JSON_ITEM),
-                                         errmsg("jsonpath item method .%s() can only be applied to a bool, string, or numeric value",
+                                         errmsg("jsonpath item method .%s() can only be applied to a boolean, string, or numeric value",
                                                 jspOperationName(jsp->type)))));
 
                jb = &jbv;
@@ -1663,7 +1663,7 @@ executeItemOptUnwrapTarget(JsonPathExecContext *cxt, JsonPathItem *jsp,
                    case jbvBinary:
                        RETURN_ERROR(ereport(ERROR,
                                             (errcode(ERRCODE_NON_NUMERIC_SQL_JSON_ITEM),
-                                             errmsg("jsonpath item method .%s() can only be applied to a bool, string, numeric, or datetime value",
+                                             errmsg("jsonpath item method .%s() can only be applied to a boolean, string, numeric, or datetime value",
                                                     jspOperationName(jsp->type)))));
                        break;
                }
@@ -3984,12 +3984,12 @@ JsonPathQuery(Datum jb, JsonPath *jp, JsonWrapper wrapper, bool *empty,
                    (errcode(ERRCODE_MORE_THAN_ONE_SQL_JSON_ITEM),
                     errmsg("JSON path expression for column \"%s\" should return single item without wrapper",
                            column_name),
-                    errhint("Use WITH WRAPPER clause to wrap SQL/JSON items into array.")));
+                    errhint("Use the WITH WRAPPER clause to wrap SQL/JSON items into an array.")));
        else
            ereport(ERROR,
                    (errcode(ERRCODE_MORE_THAN_ONE_SQL_JSON_ITEM),
                     errmsg("JSON path expression in JSON_QUERY should return single item without wrapper"),
-                    errhint("Use WITH WRAPPER clause to wrap SQL/JSON items into array.")));
+                    errhint("Use the WITH WRAPPER clause to wrap SQL/JSON items into an array.")));
    }
 
    if (singleton)
index af227b1f248c1cd516b0f25147476038628aa2b2..880d76aae0f92f48edbaeefb6f396c91df76674f 100644 (file)
@@ -2069,7 +2069,7 @@ struct config_bool ConfigureNamesBool[] =
 
    {
        {"sync_replication_slots", PGC_SIGHUP, REPLICATION_STANDBY,
-           gettext_noop("Enables a physical standby to synchronize logical failover slots from the primary server."),
+           gettext_noop("Enables a physical standby to synchronize logical failover replication slots from the primary server."),
        },
        &sync_replication_slots,
        false,
@@ -2410,7 +2410,7 @@ struct config_int ConfigureNamesInt[] =
 
    {
        {"subtransaction_buffers", PGC_POSTMASTER, RESOURCES_MEM,
-           gettext_noop("Sets the size of the dedicated buffer pool used for the sub-transaction cache."),
+           gettext_noop("Sets the size of the dedicated buffer pool used for the subtransaction cache."),
            gettext_noop("Specify 0 to have this value determined as a fraction of shared_buffers."),
            GUC_UNIT_BLOCKS
        },
@@ -4760,11 +4760,11 @@ struct config_string ConfigureNamesString[] =
 
    {
        {"synchronized_standby_slots", PGC_SIGHUP, REPLICATION_PRIMARY,
-           gettext_noop("Lists streaming replication standby server slot "
+           gettext_noop("Lists streaming replication standby server replication slot "
                         "names that logical WAL sender processes will wait for."),
            gettext_noop("Logical WAL sender processes will send decoded "
-                        "changes to plugins only after the specified  "
-                        "replication slots confirm receiving WAL."),
+                        "changes to output plugins only after the specified "
+                        "replication slots have confirmed receiving WAL."),
            GUC_LIST_INPUT
        },
        &synchronized_standby_slots,
index eebe3307d2cba19e92e6f2502aae20016db56856..403acb6eb41158681ee17b0dc92915a9998ddc5a 100644 (file)
@@ -981,7 +981,7 @@ $node2->command_fails_like(
        "$tempdir" . '/diff_sysid', '--incremental',
        "$backupdir" . '/backup_manifest'
    ],
-   qr/manifest system identifier is .*, but database system identifier is/,
+   qr/system identifier in backup manifest is .*, but database system identifier is/,
    "pg_basebackup fails with different database system manifest");
 
 done_testing();
index 612e120b17aeea3579b6346018fdf7b37487ae94..5a7b491e9a9630211dbb20a71933a007c4ff85ab 100644 (file)
@@ -634,7 +634,7 @@ json_manifest_finalize_system_identifier(JsonManifestParseState *parse)
    system_identifier = strtou64(parse->manifest_system_identifier, &ep, 10);
    if (*ep)
        json_manifest_parse_failure(parse->context,
-                                   "manifest system identifier not an integer");
+                                   "system identifier in manifest not an integer");
 
    /* Invoke the callback for system identifier */
    context->system_identifier_cb(context, system_identifier);
index 2c51cfc3c864aeb490febc936302ce0a323ac8ff..a474c626d996166e503454fa648553ed17e16997 100644 (file)
@@ -95,7 +95,7 @@ $subscriber1->safe_psql('postgres',
 # Disable failover for enabled subscription
 my ($result, $stdout, $stderr) = $subscriber1->psql('postgres',
    "ALTER SUBSCRIPTION regress_mysub1 SET (failover = false)");
-ok( $stderr =~ /ERROR:  cannot set failover for enabled subscription/,
+ok( $stderr =~ /ERROR:  cannot set option "failover" for enabled subscription/,
    "altering failover is not allowed for enabled subscription");
 
 ##################################################
@@ -280,7 +280,7 @@ $standby1->safe_psql('postgres', "SELECT pg_sync_replication_slots();");
 
 # Confirm that the invalidated slot has been dropped.
 $standby1->wait_for_log(
-   qr/dropped replication slot "lsub1_slot" of dbid [0-9]+/, $log_offset);
+   qr/dropped replication slot "lsub1_slot" of database with OID [0-9]+/, $log_offset);
 
 # Confirm that the logical slot has been re-created on the standby and is
 # flagged as 'synced'
@@ -335,7 +335,7 @@ $standby1->reload;
 ($result, $stdout, $stderr) =
   $standby1->psql('postgres', "SELECT pg_sync_replication_slots();");
 ok( $stderr =~
-     /ERROR:  slot synchronization requires dbname to be specified in primary_conninfo/,
+     /ERROR:  replication slot synchronization requires "dbname" to be specified in "primary_conninfo"/,
    "cannot sync slots if dbname is not specified in primary_conninfo");
 
 # Add the dbname back to the primary_conninfo for further tests
@@ -526,10 +526,10 @@ $standby1->reload;
 # Confirm that slot sync worker acknowledge the GUC change and logs the msg
 # about wrong configuration.
 $standby1->wait_for_log(
-   qr/slot sync worker will restart because of a parameter change/,
+   qr/slot synchronization worker will restart because of a parameter change/,
    $log_offset);
 $standby1->wait_for_log(
-   qr/slot synchronization requires hot_standby_feedback to be enabled/,
+   qr/slot synchronization requires "hot_standby_feedback" to be enabled/,
    $log_offset);
 
 $log_offset = -s $standby1->logfile;
@@ -678,7 +678,7 @@ is($result, 't', "subscriber2 gets data from primary");
 # Wait until the primary server logs a warning indicating that it is waiting
 # for the sb1_slot to catch up.
 $primary->wait_for_log(
-   qr/replication slot \"sb1_slot\" specified in parameter synchronized_standby_slots does not have active_pid/,
+   qr/replication slot \"sb1_slot\" specified in parameter "synchronized_standby_slots" does not have active_pid/,
    $offset);
 
 # The regress_mysub1 was enabled for failover so it doesn't get the data from
@@ -757,7 +757,7 @@ $back_q->query_until(
 # Wait until the primary server logs a warning indicating that it is waiting
 # for the sb1_slot to catch up.
 $primary->wait_for_log(
-   qr/replication slot \"sb1_slot\" specified in parameter synchronized_standby_slots does not have active_pid/,
+   qr/replication slot \"sb1_slot\" specified in parameter "synchronized_standby_slots" does not have active_pid/,
    $offset);
 
 # Remove the standby from the synchronized_standby_slots list and reload the
@@ -798,7 +798,7 @@ $primary->safe_psql('postgres',
 # Wait until the primary server logs a warning indicating that it is waiting
 # for the sb1_slot to catch up.
 $primary->wait_for_log(
-   qr/replication slot \"sb1_slot\" specified in parameter synchronized_standby_slots does not have active_pid/,
+   qr/replication slot \"sb1_slot\" specified in parameter "synchronized_standby_slots" does not have active_pid/,
    $offset);
 
 # The regress_mysub1 doesn't get the data from primary because the specified
index e913f683a684e826b9061f0b85fc76ac5553b139..61a19cdc4ca78d515d2a523ff6ccd3c674cd3b96 100644 (file)
@@ -740,24 +740,24 @@ CONTEXT:  COPY check_ign_err, line 2, column n: "a"
 -- want context for notices
 \set SHOW_CONTEXT always
 COPY check_ign_err FROM STDIN WITH (on_error ignore, log_verbosity verbose);
-NOTICE:  skipping row due to data type incompatibility at line 2 for column n: "a"
+NOTICE:  skipping row due to data type incompatibility at line 2 for column "n": "a"
 CONTEXT:  COPY check_ign_err
-NOTICE:  skipping row due to data type incompatibility at line 3 for column k: "3333333333"
+NOTICE:  skipping row due to data type incompatibility at line 3 for column "k": "3333333333"
 CONTEXT:  COPY check_ign_err
-NOTICE:  skipping row due to data type incompatibility at line 4 for column m: "{a, 4}"
+NOTICE:  skipping row due to data type incompatibility at line 4 for column "m": "{a, 4}"
 CONTEXT:  COPY check_ign_err
-NOTICE:  skipping row due to data type incompatibility at line 5 for column n: ""
+NOTICE:  skipping row due to data type incompatibility at line 5 for column "n": ""
 CONTEXT:  COPY check_ign_err
-NOTICE:  skipping row due to data type incompatibility at line 7 for column m: "a"
+NOTICE:  skipping row due to data type incompatibility at line 7 for column "m": "a"
 CONTEXT:  COPY check_ign_err
-NOTICE:  skipping row due to data type incompatibility at line 8 for column k: "a"
+NOTICE:  skipping row due to data type incompatibility at line 8 for column "k": "a"
 CONTEXT:  COPY check_ign_err
 NOTICE:  6 rows were skipped due to data type incompatibility
 -- tests for on_error option with log_verbosity and null constraint via domain
 CREATE DOMAIN dcheck_ign_err2 varchar(15) NOT NULL;
 CREATE TABLE check_ign_err2 (n int, m int[], k int, l dcheck_ign_err2);
 COPY check_ign_err2 FROM STDIN WITH (on_error ignore, log_verbosity verbose);
-NOTICE:  skipping row due to data type incompatibility at line 2 for column l: null input
+NOTICE:  skipping row due to data type incompatibility at line 2 for column "l": null input
 CONTEXT:  COPY check_ign_err2
 NOTICE:  1 row was skipped due to data type incompatibility
 -- reset context choice
index fed3d99b34f4c6bf02219794db1c6205d6e878a9..8c04a24b37dff6a21c9585071cc167b67092bc7a 100644 (file)
@@ -1972,7 +1972,7 @@ ALTER TABLE fk_partitioned_fk ATTACH PARTITION fk_partitioned_fk_2
 CREATE TABLE fk_partitioned_pk_6 (a int PRIMARY KEY);
 CREATE TABLE fk_partitioned_fk_6 (a int REFERENCES fk_partitioned_pk_6) PARTITION BY LIST (a);
 ALTER TABLE fk_partitioned_fk_6 ATTACH PARTITION fk_partitioned_pk_6 FOR VALUES IN (1);
-ERROR:  can't attach table "fk_partitioned_pk_6" as a partition which is referenced by foreign key "fk_partitioned_fk_6_a_fkey"
+ERROR:  cannot attach table "fk_partitioned_pk_6" as a partition because it is referenced by foreign key "fk_partitioned_fk_6_a_fkey"
 DROP TABLE fk_partitioned_pk_6, fk_partitioned_fk_6;
 -- This case is similar to above, but the referenced relation is one level
 -- lower in the hierarchy.  This one fails in a different way as the above,
index 02abaac68912c7105cc0fffa8b605b9b31ddae8d..e534ed96965531c7ccc49b32a7ad821edf66ec7c 100644 (file)
@@ -1906,7 +1906,7 @@ select jsonb_path_query('123', '$.bigint() * 2');
 
 -- Test .boolean()
 select jsonb_path_query('null', '$.boolean()');
-ERROR:  jsonpath item method .boolean() can only be applied to a bool, string, or numeric value
+ERROR:  jsonpath item method .boolean() can only be applied to a boolean, string, or numeric value
 select jsonb_path_query('null', '$.boolean()', silent => true);
  jsonb_path_query 
 ------------------
@@ -1918,9 +1918,9 @@ select jsonb_path_query('[]', '$.boolean()');
 (0 rows)
 
 select jsonb_path_query('[]', 'strict $.boolean()');
-ERROR:  jsonpath item method .boolean() can only be applied to a bool, string, or numeric value
+ERROR:  jsonpath item method .boolean() can only be applied to a boolean, string, or numeric value
 select jsonb_path_query('{}', '$.boolean()');
-ERROR:  jsonpath item method .boolean() can only be applied to a bool, string, or numeric value
+ERROR:  jsonpath item method .boolean() can only be applied to a boolean, string, or numeric value
 select jsonb_path_query('[]', 'strict $.boolean()', silent => true);
  jsonb_path_query 
 ------------------
@@ -2568,7 +2568,7 @@ select jsonb_path_query('12.3', '$.number() * 2');
 
 -- Test .string()
 select jsonb_path_query('null', '$.string()');
-ERROR:  jsonpath item method .string() can only be applied to a bool, string, numeric, or datetime value
+ERROR:  jsonpath item method .string() can only be applied to a boolean, string, numeric, or datetime value
 select jsonb_path_query('null', '$.string()', silent => true);
  jsonb_path_query 
 ------------------
@@ -2580,9 +2580,9 @@ select jsonb_path_query('[]', '$.string()');
 (0 rows)
 
 select jsonb_path_query('[]', 'strict $.string()');
-ERROR:  jsonpath item method .string() can only be applied to a bool, string, numeric, or datetime value
+ERROR:  jsonpath item method .string() can only be applied to a boolean, string, numeric, or datetime value
 select jsonb_path_query('{}', '$.string()');
-ERROR:  jsonpath item method .string() can only be applied to a bool, string, numeric, or datetime value
+ERROR:  jsonpath item method .string() can only be applied to a boolean, string, numeric, or datetime value
 select jsonb_path_query('[]', 'strict $.string()', silent => true);
  jsonb_path_query 
 ------------------
index ca8604a0538e2b74d638db0b138eb84921e18311..721e01d6ad079802a650a9c3e47563da346b4649 100644 (file)
@@ -710,7 +710,7 @@ LINE 1: SELECT * FROM JSON_TABLE(jsonb '{"a": 123}', '$' || '.' || '...
 -- JsonPathQuery() error message mentioning column name
 SELECT * FROM JSON_TABLE('{"a": [{"b": "1"}, {"b": "2"}]}', '$' COLUMNS (b json path '$.a[*].b' ERROR ON ERROR));
 ERROR:  JSON path expression for column "b" should return single item without wrapper
-HINT:  Use WITH WRAPPER clause to wrap SQL/JSON items into array.
+HINT:  Use the WITH WRAPPER clause to wrap SQL/JSON items into an array.
 -- JSON_TABLE: nested paths
 -- Duplicate path names
 SELECT * FROM JSON_TABLE(
index 8b64e3c06b3b7b2d4659d0468562876ecfc880e9..73d7d2117ee4e7e0dd4fe687ea08bb3104db4ea2 100644 (file)
@@ -807,7 +807,7 @@ SELECT JSON_QUERY(jsonb '[]', '$[*]' ERROR ON ERROR);   -- NULL ON EMPTY
 
 SELECT JSON_QUERY(jsonb '[1,2]', '$[*]' ERROR ON ERROR);
 ERROR:  JSON path expression in JSON_QUERY should return single item without wrapper
-HINT:  Use WITH WRAPPER clause to wrap SQL/JSON items into array.
+HINT:  Use the WITH WRAPPER clause to wrap SQL/JSON items into an array.
 SELECT JSON_QUERY(jsonb '[1,2]', '$[*]' DEFAULT '"empty"' ON ERROR);
  json_query 
 ------------
index 420769a40c9df052a1a51dc9564d686f08b120bf..8786058ed0c01e804f16ac4c0b9c91588a933501 100644 (file)
@@ -1279,7 +1279,7 @@ MERGE INTO rw_view2 t
   WHEN MATCHED THEN UPDATE SET b = s.b
   WHEN NOT MATCHED AND s.a > 0 THEN INSERT VALUES (s.a, s.b); -- should fail
 ERROR:  cannot merge into view "rw_view2"
-DETAIL:  MERGE is not supported for views with INSTEAD OF triggers for some actions, but not others.
+DETAIL:  MERGE is not supported for views with INSTEAD OF triggers for some actions but not all.
 HINT:  To enable merging into the view, either provide a full set of INSTEAD OF triggers or drop the existing INSTEAD OF triggers.
 MERGE INTO rw_view2 t
   USING (SELECT x, 'R'||x FROM generate_series(0,3) x) AS s(a,b) ON t.a = s.a