From 59a2111b23f6ceec4c777d68e20c1027d3c57c6f Mon Sep 17 00:00:00 2001 From: Alvaro Herrera Date: Mon, 28 Mar 2016 14:12:00 -0300 Subject: [PATCH] Improve internationalization of messages involving type names Change the slightly different variations of the message function FOO must return type BAR to a single wording, removing the variability in type name so that they all create a single translation entry; since the type name is not to be translated, there's no point in it being part of the message anyway. Also, change them all to use the same quoting convention, namely that the function name is not to be quoted but the type name is. (I'm not quite sure why this is so, but it's the clear majority.) Some similar messages such as "encoding conversion function FOO must ..." are also changed. --- src/backend/commands/conversioncmds.c | 4 +-- src/backend/commands/event_trigger.c | 4 +-- src/backend/commands/foreigncmds.c | 4 +-- src/backend/commands/operatorcmds.c | 8 +++--- src/backend/commands/proclang.c | 8 +++--- src/backend/commands/trigger.c | 4 +-- src/backend/commands/typecmds.c | 37 ++++++++++++++------------- src/backend/parser/parse_clause.c | 4 +-- 8 files changed, 37 insertions(+), 36 deletions(-) diff --git a/src/backend/commands/conversioncmds.c b/src/backend/commands/conversioncmds.c index 752e2a2fef..a5a63f4575 100644 --- a/src/backend/commands/conversioncmds.c +++ b/src/backend/commands/conversioncmds.c @@ -85,8 +85,8 @@ CreateConversionCommand(CreateConversionStmt *stmt) if (get_func_rettype(funcoid) != VOIDOID) ereport(ERROR, (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), - errmsg("encoding conversion function %s must return type \"void\"", - NameListToString(func_name)))); + errmsg("encoding conversion function %s must return type \"%s\"", + NameListToString(func_name), "void"))); /* Check we have EXECUTE rights for the function */ aclresult = pg_proc_aclcheck(funcoid, GetUserId(), ACL_EXECUTE); diff --git a/src/backend/commands/event_trigger.c b/src/backend/commands/event_trigger.c index 3f52ad836b..3735d44ee9 100644 --- a/src/backend/commands/event_trigger.c +++ b/src/backend/commands/event_trigger.c @@ -237,8 +237,8 @@ CreateEventTrigger(CreateEventTrigStmt *stmt) if (funcrettype != EVTTRIGGEROID) ereport(ERROR, (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), - errmsg("function \"%s\" must return type \"event_trigger\"", - NameListToString(stmt->funcname)))); + errmsg("function %s must return type \"%s\"", + NameListToString(stmt->funcname), "event_trigger"))); /* Insert catalog entries. */ return insert_event_trigger_tuple(stmt->trigname, stmt->eventname, diff --git a/src/backend/commands/foreigncmds.c b/src/backend/commands/foreigncmds.c index 7036eb1246..72c819317e 100644 --- a/src/backend/commands/foreigncmds.c +++ b/src/backend/commands/foreigncmds.c @@ -486,8 +486,8 @@ lookup_fdw_handler_func(DefElem *handler) if (get_func_rettype(handlerOid) != FDW_HANDLEROID) ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), - errmsg("function %s must return type \"fdw_handler\"", - NameListToString((List *) handler->arg)))); + errmsg("function %s must return type \"%s\"", + NameListToString((List *) handler->arg), "fdw_handler"))); return handlerOid; } diff --git a/src/backend/commands/operatorcmds.c b/src/backend/commands/operatorcmds.c index d32ba2d61f..6edbe85ef5 100644 --- a/src/backend/commands/operatorcmds.c +++ b/src/backend/commands/operatorcmds.c @@ -275,8 +275,8 @@ ValidateRestrictionEstimator(List *restrictionName) if (get_func_rettype(restrictionOid) != FLOAT8OID) ereport(ERROR, (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), - errmsg("restriction estimator function %s must return type \"float8\"", - NameListToString(restrictionName)))); + errmsg("restriction estimator function %s must return type \"%s\"", + NameListToString(restrictionName), "float8"))); /* Require EXECUTE rights for the estimator */ aclresult = pg_proc_aclcheck(restrictionOid, GetUserId(), ACL_EXECUTE); @@ -321,8 +321,8 @@ ValidateJoinEstimator(List *joinName) if (get_func_rettype(joinOid) != FLOAT8OID) ereport(ERROR, (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), - errmsg("join estimator function %s must return type \"float8\"", - NameListToString(joinName)))); + errmsg("join estimator function %s must return type \"%s\"", + NameListToString(joinName), "float8"))); /* Require EXECUTE rights for the estimator */ aclresult = pg_proc_aclcheck(joinOid, GetUserId(), ACL_EXECUTE); diff --git a/src/backend/commands/proclang.c b/src/backend/commands/proclang.c index 5696dc214d..43581ec310 100644 --- a/src/backend/commands/proclang.c +++ b/src/backend/commands/proclang.c @@ -114,8 +114,8 @@ CreateProceduralLanguage(CreatePLangStmt *stmt) if (funcrettype != LANGUAGE_HANDLEROID) ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), - errmsg("function %s must return type \"language_handler\"", - NameListToString(funcname)))); + errmsg("function %s must return type \"%s\"", + NameListToString(funcname), "language_handler"))); } else { @@ -285,8 +285,8 @@ CreateProceduralLanguage(CreatePLangStmt *stmt) else ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), - errmsg("function %s must return type \"language_handler\"", - NameListToString(stmt->plhandler)))); + errmsg("function %s must return type \"%s\"", + NameListToString(stmt->plhandler), "language_handler"))); } /* validate the inline function */ diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c index 28260e8660..5429aab1c1 100644 --- a/src/backend/commands/trigger.c +++ b/src/backend/commands/trigger.c @@ -438,8 +438,8 @@ CreateTrigger(CreateTrigStmt *stmt, const char *queryString, else ereport(ERROR, (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), - errmsg("function %s must return type \"trigger\"", - NameListToString(stmt->funcname)))); + errmsg("function %s must return type \"%s\"", + NameListToString(stmt->funcname), "trigger"))); } /* diff --git a/src/backend/commands/typecmds.c b/src/backend/commands/typecmds.c index 227d382a38..3de29b766d 100644 --- a/src/backend/commands/typecmds.c +++ b/src/backend/commands/typecmds.c @@ -450,14 +450,14 @@ DefineType(List *names, List *parameters) { /* backwards-compatibility hack */ ereport(WARNING, - (errmsg("changing return type of function %s from \"opaque\" to %s", - NameListToString(inputName), typeName))); + (errmsg("changing return type of function %s from \"%s\" to \"%s\"", + NameListToString(inputName), "opaque", typeName))); SetFunctionReturnType(inputOid, typoid); } else ereport(ERROR, (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), - errmsg("type input function %s must return type %s", + errmsg("type input function %s must return type \"%s\"", NameListToString(inputName), typeName))); } resulttype = get_func_rettype(outputOid); @@ -467,15 +467,15 @@ DefineType(List *names, List *parameters) { /* backwards-compatibility hack */ ereport(WARNING, - (errmsg("changing return type of function %s from \"opaque\" to \"cstring\"", - NameListToString(outputName)))); + (errmsg("changing return type of function %s from \"%s\" to \"%s\"", + NameListToString(outputName), "opaque", "cstring"))); SetFunctionReturnType(outputOid, CSTRINGOID); } else ereport(ERROR, (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), - errmsg("type output function %s must return type \"cstring\"", - NameListToString(outputName)))); + errmsg("type output function %s must return type \"%s\"", + NameListToString(outputName), "cstring"))); } if (receiveOid) { @@ -483,7 +483,7 @@ DefineType(List *names, List *parameters) if (resulttype != typoid) ereport(ERROR, (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), - errmsg("type receive function %s must return type %s", + errmsg("type receive function %s must return type \"%s\"", NameListToString(receiveName), typeName))); } if (sendOid) @@ -492,8 +492,8 @@ DefineType(List *names, List *parameters) if (resulttype != BYTEAOID) ereport(ERROR, (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), - errmsg("type send function %s must return type \"bytea\"", - NameListToString(sendName)))); + errmsg("type send function %s must return type \"%s\"", + NameListToString(sendName), "bytea"))); } /* @@ -1834,8 +1834,8 @@ findTypeTypmodinFunction(List *procname) if (get_func_rettype(procOid) != INT4OID) ereport(ERROR, (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), - errmsg("typmod_in function %s must return type \"integer\"", - NameListToString(procname)))); + errmsg("typmod_in function %s must return type \"%s\"", + NameListToString(procname), "integer"))); return procOid; } @@ -1861,8 +1861,8 @@ findTypeTypmodoutFunction(List *procname) if (get_func_rettype(procOid) != CSTRINGOID) ereport(ERROR, (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), - errmsg("typmod_out function %s must return type \"cstring\"", - NameListToString(procname)))); + errmsg("typmod_out function %s must return type \"%s\"", + NameListToString(procname), "cstring"))); return procOid; } @@ -1888,8 +1888,8 @@ findTypeAnalyzeFunction(List *procname, Oid typeOid) if (get_func_rettype(procOid) != BOOLOID) ereport(ERROR, (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), - errmsg("type analyze function %s must return type \"boolean\"", - NameListToString(procname)))); + errmsg("type analyze function %s must return type \"%s\"", + NameListToString(procname), "boolean"))); return procOid; } @@ -2007,8 +2007,9 @@ findRangeSubtypeDiffFunction(List *procname, Oid subtype) if (get_func_rettype(procOid) != FLOAT8OID) ereport(ERROR, (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), - errmsg("range subtype diff function %s must return type double precision", - func_signature_string(procname, 2, NIL, argList)))); + errmsg("range subtype diff function %s must return type \"%s\"", + func_signature_string(procname, 2, NIL, argList), + "double precision"))); if (func_volatile(procOid) != PROVOLATILE_IMMUTABLE) ereport(ERROR, diff --git a/src/backend/parser/parse_clause.c b/src/backend/parser/parse_clause.c index 4d9febee64..8dbe943741 100644 --- a/src/backend/parser/parse_clause.c +++ b/src/backend/parser/parse_clause.c @@ -758,8 +758,8 @@ transformRangeTableSample(ParseState *pstate, RangeTableSample *rts) if (get_func_rettype(handlerOid) != TSM_HANDLEROID) ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), - errmsg("function %s must return type \"tsm_handler\"", - NameListToString(rts->method)), + errmsg("function %s must return type \"%s\"", + NameListToString(rts->method), "tsm_handler"), parser_errposition(pstate, rts->location))); /* OK, run the handler to get TsmRoutine, for argument type info */