Unify some error messages to ease work of translators
This commit updates a couple of error messages around control file data, GUCs and server settings, unifying to the same message where possible. This reduces the translation burden a bit. Author: Peter Smith Discussion: https://postgr.es/m/CAHut+Pv-kSN8SkxSdoHano_wPubqcg5789ejhCDZAcLFceBR-w@mail.gmail.com
This commit is contained in:
parent
b4db64270e
commit
a68159ff2b
@ -4395,17 +4395,21 @@ ReadControlFile(void)
|
||||
ereport(FATAL,
|
||||
(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
|
||||
errmsg("database files are incompatible with server"),
|
||||
errdetail("The database cluster was initialized with CATALOG_VERSION_NO %d,"
|
||||
" but the server was compiled with CATALOG_VERSION_NO %d.",
|
||||
ControlFile->catalog_version_no, CATALOG_VERSION_NO),
|
||||
/* translator: %s is a variable name and %d is its value */
|
||||
errdetail("The database cluster was initialized with %s %d,"
|
||||
" but the server was compiled with %s %d.",
|
||||
"CATALOG_VERSION_NO", ControlFile->catalog_version_no,
|
||||
"CATALOG_VERSION_NO", CATALOG_VERSION_NO),
|
||||
errhint("It looks like you need to initdb.")));
|
||||
if (ControlFile->maxAlign != MAXIMUM_ALIGNOF)
|
||||
ereport(FATAL,
|
||||
(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
|
||||
errmsg("database files are incompatible with server"),
|
||||
errdetail("The database cluster was initialized with MAXALIGN %d,"
|
||||
" but the server was compiled with MAXALIGN %d.",
|
||||
ControlFile->maxAlign, MAXIMUM_ALIGNOF),
|
||||
/* translator: %s is a variable name and %d is its value */
|
||||
errdetail("The database cluster was initialized with %s %d,"
|
||||
" but the server was compiled with %s %d.",
|
||||
"MAXALIGN", ControlFile->maxAlign,
|
||||
"MAXALIGN", MAXIMUM_ALIGNOF),
|
||||
errhint("It looks like you need to initdb.")));
|
||||
if (ControlFile->floatFormat != FLOATFORMAT_VALUE)
|
||||
ereport(FATAL,
|
||||
@ -4417,57 +4421,71 @@ ReadControlFile(void)
|
||||
ereport(FATAL,
|
||||
(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
|
||||
errmsg("database files are incompatible with server"),
|
||||
errdetail("The database cluster was initialized with BLCKSZ %d,"
|
||||
" but the server was compiled with BLCKSZ %d.",
|
||||
ControlFile->blcksz, BLCKSZ),
|
||||
/* translator: %s is a variable name and %d is its value */
|
||||
errdetail("The database cluster was initialized with %s %d,"
|
||||
" but the server was compiled with %s %d.",
|
||||
"BLCKSZ", ControlFile->blcksz,
|
||||
"BLCKSZ", BLCKSZ),
|
||||
errhint("It looks like you need to recompile or initdb.")));
|
||||
if (ControlFile->relseg_size != RELSEG_SIZE)
|
||||
ereport(FATAL,
|
||||
(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
|
||||
errmsg("database files are incompatible with server"),
|
||||
errdetail("The database cluster was initialized with RELSEG_SIZE %d,"
|
||||
" but the server was compiled with RELSEG_SIZE %d.",
|
||||
ControlFile->relseg_size, RELSEG_SIZE),
|
||||
/* translator: %s is a variable name and %d is its value */
|
||||
errdetail("The database cluster was initialized with %s %d,"
|
||||
" but the server was compiled with %s %d.",
|
||||
"RELSEG_SIZE", ControlFile->relseg_size,
|
||||
"RELSEG_SIZE", RELSEG_SIZE),
|
||||
errhint("It looks like you need to recompile or initdb.")));
|
||||
if (ControlFile->xlog_blcksz != XLOG_BLCKSZ)
|
||||
ereport(FATAL,
|
||||
(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
|
||||
errmsg("database files are incompatible with server"),
|
||||
errdetail("The database cluster was initialized with XLOG_BLCKSZ %d,"
|
||||
" but the server was compiled with XLOG_BLCKSZ %d.",
|
||||
ControlFile->xlog_blcksz, XLOG_BLCKSZ),
|
||||
/* translator: %s is a variable name and %d is its value */
|
||||
errdetail("The database cluster was initialized with %s %d,"
|
||||
" but the server was compiled with %s %d.",
|
||||
"XLOG_BLCKSZ", ControlFile->xlog_blcksz,
|
||||
"XLOG_BLCKSZ", XLOG_BLCKSZ),
|
||||
errhint("It looks like you need to recompile or initdb.")));
|
||||
if (ControlFile->nameDataLen != NAMEDATALEN)
|
||||
ereport(FATAL,
|
||||
(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
|
||||
errmsg("database files are incompatible with server"),
|
||||
errdetail("The database cluster was initialized with NAMEDATALEN %d,"
|
||||
" but the server was compiled with NAMEDATALEN %d.",
|
||||
ControlFile->nameDataLen, NAMEDATALEN),
|
||||
/* translator: %s is a variable name and %d is its value */
|
||||
errdetail("The database cluster was initialized with %s %d,"
|
||||
" but the server was compiled with %s %d.",
|
||||
"NAMEDATALEN", ControlFile->nameDataLen,
|
||||
"NAMEDATALEN", NAMEDATALEN),
|
||||
errhint("It looks like you need to recompile or initdb.")));
|
||||
if (ControlFile->indexMaxKeys != INDEX_MAX_KEYS)
|
||||
ereport(FATAL,
|
||||
(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
|
||||
errmsg("database files are incompatible with server"),
|
||||
errdetail("The database cluster was initialized with INDEX_MAX_KEYS %d,"
|
||||
" but the server was compiled with INDEX_MAX_KEYS %d.",
|
||||
ControlFile->indexMaxKeys, INDEX_MAX_KEYS),
|
||||
/* translator: %s is a variable name and %d is its value */
|
||||
errdetail("The database cluster was initialized with %s %d,"
|
||||
" but the server was compiled with %s %d.",
|
||||
"INDEX_MAX_KEYS", ControlFile->indexMaxKeys,
|
||||
"INDEX_MAX_KEYS", INDEX_MAX_KEYS),
|
||||
errhint("It looks like you need to recompile or initdb.")));
|
||||
if (ControlFile->toast_max_chunk_size != TOAST_MAX_CHUNK_SIZE)
|
||||
ereport(FATAL,
|
||||
(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
|
||||
errmsg("database files are incompatible with server"),
|
||||
errdetail("The database cluster was initialized with TOAST_MAX_CHUNK_SIZE %d,"
|
||||
" but the server was compiled with TOAST_MAX_CHUNK_SIZE %d.",
|
||||
ControlFile->toast_max_chunk_size, (int) TOAST_MAX_CHUNK_SIZE),
|
||||
/* translator: %s is a variable name and %d is its value */
|
||||
errdetail("The database cluster was initialized with %s %d,"
|
||||
" but the server was compiled with %s %d.",
|
||||
"TOAST_MAX_CHUNK_SIZE", ControlFile->toast_max_chunk_size,
|
||||
"TOAST_MAX_CHUNK_SIZE", (int) TOAST_MAX_CHUNK_SIZE),
|
||||
errhint("It looks like you need to recompile or initdb.")));
|
||||
if (ControlFile->loblksize != LOBLKSIZE)
|
||||
ereport(FATAL,
|
||||
(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
|
||||
errmsg("database files are incompatible with server"),
|
||||
errdetail("The database cluster was initialized with LOBLKSIZE %d,"
|
||||
" but the server was compiled with LOBLKSIZE %d.",
|
||||
ControlFile->loblksize, (int) LOBLKSIZE),
|
||||
/* translator: %s is a variable name and %d is its value */
|
||||
errdetail("The database cluster was initialized with %s %d,"
|
||||
" but the server was compiled with %s %d.",
|
||||
"LOBLKSIZE", ControlFile->loblksize,
|
||||
"LOBLKSIZE", (int) LOBLKSIZE),
|
||||
errhint("It looks like you need to recompile or initdb.")));
|
||||
|
||||
#ifdef USE_FLOAT8_BYVAL
|
||||
@ -4505,11 +4523,15 @@ ReadControlFile(void)
|
||||
/* check and update variables dependent on wal_segment_size */
|
||||
if (ConvertToXSegs(min_wal_size_mb, wal_segment_size) < 2)
|
||||
ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||
errmsg("\"min_wal_size\" must be at least twice \"wal_segment_size\"")));
|
||||
/* translator: both %s are GUC names */
|
||||
errmsg("\"%s\" must be at least twice \"%s\"",
|
||||
"min_wal_size", "wal_segment_size")));
|
||||
|
||||
if (ConvertToXSegs(max_wal_size_mb, wal_segment_size) < 2)
|
||||
ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||
errmsg("\"max_wal_size\" must be at least twice \"wal_segment_size\"")));
|
||||
/* translator: both %s are GUC names */
|
||||
errmsg("\"%s\" must be at least twice \"%s\"",
|
||||
"max_wal_size", "wal_segment_size")));
|
||||
|
||||
UsableBytesInSegment =
|
||||
(wal_segment_size / XLOG_BLCKSZ * UsableBytesInPage) -
|
||||
|
@ -1212,7 +1212,8 @@ check_effective_io_concurrency(int *newval, void **extra, GucSource source)
|
||||
#ifndef USE_PREFETCH
|
||||
if (*newval != 0)
|
||||
{
|
||||
GUC_check_errdetail("\"effective_io_concurrency\" must be set to 0 on platforms that lack support for issuing read-ahead advice.");
|
||||
GUC_check_errdetail("\"%s\" must be set to 0 on platforms that lack support for issuing read-ahead advice.",
|
||||
"effective_io_concurrency");
|
||||
return false;
|
||||
}
|
||||
#endif /* USE_PREFETCH */
|
||||
@ -1225,7 +1226,8 @@ check_maintenance_io_concurrency(int *newval, void **extra, GucSource source)
|
||||
#ifndef USE_PREFETCH
|
||||
if (*newval != 0)
|
||||
{
|
||||
GUC_check_errdetail("\"maintenance_io_concurrency\" must be set to 0 on platforms that lack support for issuing read-ahead advice.");
|
||||
GUC_check_errdetail("\"%s\" must be set to 0 on platforms that lack support for issuing read-ahead advice.",
|
||||
"maintenance_io_concurrency");
|
||||
return false;
|
||||
}
|
||||
#endif /* USE_PREFETCH */
|
||||
|
@ -3971,7 +3971,8 @@ check_debug_io_direct(char **newval, void **extra, GucSource source)
|
||||
#if PG_O_DIRECT == 0
|
||||
if (strcmp(*newval, "") != 0)
|
||||
{
|
||||
GUC_check_errdetail("\"debug_io_direct\" is not supported on this platform.");
|
||||
GUC_check_errdetail("\"%s\" is not supported on this platform.",
|
||||
"debug_io_direct");
|
||||
result = false;
|
||||
}
|
||||
flags = 0;
|
||||
@ -4018,14 +4019,16 @@ check_debug_io_direct(char **newval, void **extra, GucSource source)
|
||||
#if XLOG_BLCKSZ < PG_IO_ALIGN_SIZE
|
||||
if (result && (flags & (IO_DIRECT_WAL | IO_DIRECT_WAL_INIT)))
|
||||
{
|
||||
GUC_check_errdetail("\"debug_io_direct\" is not supported for WAL because XLOG_BLCKSZ is too small");
|
||||
GUC_check_errdetail("\"%s\" is not supported for WAL because %s is too small",
|
||||
"debug_io_direct", "XLOG_BLCKSZ");
|
||||
result = false;
|
||||
}
|
||||
#endif
|
||||
#if BLCKSZ < PG_IO_ALIGN_SIZE
|
||||
if (result && (flags & IO_DIRECT_DATA))
|
||||
{
|
||||
GUC_check_errdetail("\"debug_io_direct\" is not supported for data because BLCKSZ is too small");
|
||||
GUC_check_errdetail("\"%s\" is not supported for WAL because %s is too small",
|
||||
"debug_io_direct", "BLCKSZ");
|
||||
result = false;
|
||||
}
|
||||
#endif
|
||||
|
@ -358,8 +358,9 @@ incompatible_module_error(const char *libname,
|
||||
if (details.len)
|
||||
appendStringInfoChar(&details, '\n');
|
||||
appendStringInfo(&details,
|
||||
_("Server has FUNC_MAX_ARGS = %d, library has %d."),
|
||||
magic_data.funcmaxargs,
|
||||
/* translator: %s is a variable name and %d its values */
|
||||
_("Server has %s = %d, library has %d."),
|
||||
"FUNC_MAX_ARGS", magic_data.funcmaxargs,
|
||||
module_magic_data->funcmaxargs);
|
||||
}
|
||||
if (module_magic_data->indexmaxkeys != magic_data.indexmaxkeys)
|
||||
@ -367,8 +368,9 @@ incompatible_module_error(const char *libname,
|
||||
if (details.len)
|
||||
appendStringInfoChar(&details, '\n');
|
||||
appendStringInfo(&details,
|
||||
_("Server has INDEX_MAX_KEYS = %d, library has %d."),
|
||||
magic_data.indexmaxkeys,
|
||||
/* translator: %s is a variable name and %d its values */
|
||||
_("Server has %s = %d, library has %d."),
|
||||
"INDEX_MAX_KEYS", magic_data.indexmaxkeys,
|
||||
module_magic_data->indexmaxkeys);
|
||||
}
|
||||
if (module_magic_data->namedatalen != magic_data.namedatalen)
|
||||
@ -376,8 +378,9 @@ incompatible_module_error(const char *libname,
|
||||
if (details.len)
|
||||
appendStringInfoChar(&details, '\n');
|
||||
appendStringInfo(&details,
|
||||
_("Server has NAMEDATALEN = %d, library has %d."),
|
||||
magic_data.namedatalen,
|
||||
/* translator: %s is a variable name and %d its values */
|
||||
_("Server has %s = %d, library has %d."),
|
||||
"NAMEDATALEN", magic_data.namedatalen,
|
||||
module_magic_data->namedatalen);
|
||||
}
|
||||
if (module_magic_data->float8byval != magic_data.float8byval)
|
||||
@ -385,8 +388,9 @@ incompatible_module_error(const char *libname,
|
||||
if (details.len)
|
||||
appendStringInfoChar(&details, '\n');
|
||||
appendStringInfo(&details,
|
||||
_("Server has FLOAT8PASSBYVAL = %s, library has %s."),
|
||||
magic_data.float8byval ? "true" : "false",
|
||||
/* translator: %s is a variable name and %d its values */
|
||||
_("Server has %s = %s, library has %s."),
|
||||
"FLOAT8PASSBYVAL", magic_data.float8byval ? "true" : "false",
|
||||
module_magic_data->float8byval ? "true" : "false");
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user