Commit f1e7f25b authored by Alvaro Herrera's avatar Alvaro Herrera

Change some errdetail() to errdetail_internal()

This prevents marking the argument string for translation for gettext,
and it also prevents the given string (which is already translated) from
being translated at runtime.

Also, mark the strings used as arguments to check_rolespec_name for
translation.

Backpatch all the way back as appropriate.  None of this is caught by
any tests (necessarily so), so I verified it manually.
parent 99237646
...@@ -1193,14 +1193,14 @@ reportDependentObjects(const ObjectAddresses *targetObjects, ...@@ -1193,14 +1193,14 @@ reportDependentObjects(const ObjectAddresses *targetObjects,
(errcode(ERRCODE_DEPENDENT_OBJECTS_STILL_EXIST), (errcode(ERRCODE_DEPENDENT_OBJECTS_STILL_EXIST),
errmsg("cannot drop %s because other objects depend on it", errmsg("cannot drop %s because other objects depend on it",
getObjectDescription(origObject, false)), getObjectDescription(origObject, false)),
errdetail("%s", clientdetail.data), errdetail_internal("%s", clientdetail.data),
errdetail_log("%s", logdetail.data), errdetail_log("%s", logdetail.data),
errhint("Use DROP ... CASCADE to drop the dependent objects too."))); errhint("Use DROP ... CASCADE to drop the dependent objects too.")));
else else
ereport(ERROR, ereport(ERROR,
(errcode(ERRCODE_DEPENDENT_OBJECTS_STILL_EXIST), (errcode(ERRCODE_DEPENDENT_OBJECTS_STILL_EXIST),
errmsg("cannot drop desired object(s) because other objects depend on them"), errmsg("cannot drop desired object(s) because other objects depend on them"),
errdetail("%s", clientdetail.data), errdetail_internal("%s", clientdetail.data),
errdetail_log("%s", logdetail.data), errdetail_log("%s", logdetail.data),
errhint("Use DROP ... CASCADE to drop the dependent objects too."))); errhint("Use DROP ... CASCADE to drop the dependent objects too.")));
} }
...@@ -1212,7 +1212,7 @@ reportDependentObjects(const ObjectAddresses *targetObjects, ...@@ -1212,7 +1212,7 @@ reportDependentObjects(const ObjectAddresses *targetObjects,
"drop cascades to %d other objects", "drop cascades to %d other objects",
numReportedClient + numNotReportedClient, numReportedClient + numNotReportedClient,
numReportedClient + numNotReportedClient), numReportedClient + numNotReportedClient),
errdetail("%s", clientdetail.data), errdetail_internal("%s", clientdetail.data),
errdetail_log("%s", logdetail.data))); errdetail_log("%s", logdetail.data)));
} }
else if (numReportedClient == 1) else if (numReportedClient == 1)
......
...@@ -567,7 +567,7 @@ AlterRole(AlterRoleStmt *stmt) ...@@ -567,7 +567,7 @@ AlterRole(AlterRoleStmt *stmt)
Oid roleid; Oid roleid;
check_rolespec_name(stmt->role, check_rolespec_name(stmt->role,
"Cannot alter reserved roles."); _("Cannot alter reserved roles."));
/* Extract options from the statement node tree */ /* Extract options from the statement node tree */
foreach(option, stmt->options) foreach(option, stmt->options)
...@@ -922,7 +922,7 @@ AlterRoleSet(AlterRoleSetStmt *stmt) ...@@ -922,7 +922,7 @@ AlterRoleSet(AlterRoleSetStmt *stmt)
if (stmt->role) if (stmt->role)
{ {
check_rolespec_name(stmt->role, check_rolespec_name(stmt->role,
"Cannot alter reserved roles."); _("Cannot alter reserved roles."));
roletuple = get_rolespec_tuple(stmt->role); roletuple = get_rolespec_tuple(stmt->role);
roleform = (Form_pg_authid) GETSTRUCT(roletuple); roleform = (Form_pg_authid) GETSTRUCT(roletuple);
......
...@@ -5226,7 +5226,7 @@ get_rolespec_name(const RoleSpec *role) ...@@ -5226,7 +5226,7 @@ get_rolespec_name(const RoleSpec *role)
/* /*
* Given a RoleSpec, throw an error if the name is reserved, using detail_msg, * Given a RoleSpec, throw an error if the name is reserved, using detail_msg,
* if provided. * if provided (which must be already translated).
* *
* If node is NULL, no error is thrown. If detail_msg is NULL then no detail * If node is NULL, no error is thrown. If detail_msg is NULL then no detail
* message is provided. * message is provided.
...@@ -5247,7 +5247,7 @@ check_rolespec_name(const RoleSpec *role, const char *detail_msg) ...@@ -5247,7 +5247,7 @@ check_rolespec_name(const RoleSpec *role, const char *detail_msg)
(errcode(ERRCODE_RESERVED_NAME), (errcode(ERRCODE_RESERVED_NAME),
errmsg("role name \"%s\" is reserved", errmsg("role name \"%s\" is reserved",
role->rolename), role->rolename),
errdetail("%s", detail_msg))); errdetail_internal("%s", detail_msg)));
else else
ereport(ERROR, ereport(ERROR,
(errcode(ERRCODE_RESERVED_NAME), (errcode(ERRCODE_RESERVED_NAME),
......
...@@ -615,13 +615,13 @@ json_ereport_error(JsonParseErrorType error, JsonLexContext *lex) ...@@ -615,13 +615,13 @@ json_ereport_error(JsonParseErrorType error, JsonLexContext *lex)
ereport(ERROR, ereport(ERROR,
(errcode(ERRCODE_UNTRANSLATABLE_CHARACTER), (errcode(ERRCODE_UNTRANSLATABLE_CHARACTER),
errmsg("unsupported Unicode escape sequence"), errmsg("unsupported Unicode escape sequence"),
errdetail("%s", json_errdetail(error, lex)), errdetail_internal("%s", json_errdetail(error, lex)),
report_json_context(lex))); report_json_context(lex)));
else else
ereport(ERROR, ereport(ERROR,
(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
errmsg("invalid input syntax for type %s", "json"), errmsg("invalid input syntax for type %s", "json"),
errdetail("%s", json_errdetail(error, lex)), errdetail_internal("%s", json_errdetail(error, lex)),
report_json_context(lex))); report_json_context(lex)));
} }
......
...@@ -1052,7 +1052,7 @@ report_parse_error(JsonParseContext ctx, JsonLexContext *lex) ...@@ -1052,7 +1052,7 @@ report_parse_error(JsonParseContext ctx, JsonLexContext *lex)
} }
/* /*
* Construct a detail message for a JSON error. * Construct an (already translated) detail message for a JSON error.
*/ */
char * char *
json_errdetail(JsonParseErrorType error, JsonLexContext *lex) json_errdetail(JsonParseErrorType error, JsonLexContext *lex)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment