1
0
mirror of https://github.com/postgres/postgres.git synced 2025-11-03 09:13:20 +03:00

Message style improvements

This commit is contained in:
Peter Eisentraut
2024-08-29 14:43:34 +02:00
parent 894be11adf
commit edee0c621d
23 changed files with 92 additions and 87 deletions

View 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,

View 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

View 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);
}

View 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));

View 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. */

View 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))));

View 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))));

View 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."));
/*

View 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);
}

View 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"));
}
/*

View 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. */

View 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."));
}
}

View 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)

View 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,