Skip to content

Commit

Permalink
Make some error strings more generic
Browse files Browse the repository at this point in the history
It's undesirable to have SQL commands or configuration options in a
translatable error string, so take some of these out.
  • Loading branch information
alvherre committed Oct 20, 2023
1 parent 41da94f commit 36a14af
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 12 deletions.
13 changes: 9 additions & 4 deletions src/backend/commands/collationcmds.c
Expand Up @@ -250,19 +250,22 @@ DefineCollation(ParseState *pstate, List *names, List *parameters, bool if_not_e
if (!collcollate)
ereport(ERROR,
(errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
errmsg("parameter \"lc_collate\" must be specified")));
errmsg("parameter \"%s\" must be specified",
"lc_collate")));

if (!collctype)
ereport(ERROR,
(errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
errmsg("parameter \"lc_ctype\" must be specified")));
errmsg("parameter \"%s\" must be specified",
"lc_ctype")));
}
else if (collprovider == COLLPROVIDER_ICU)
{
if (!colliculocale)
ereport(ERROR,
(errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
errmsg("parameter \"locale\" must be specified")));
errmsg("parameter \"%s\" must be specified",
"locale")));

/*
* During binary upgrade, preserve the locale string. Otherwise,
Expand Down Expand Up @@ -416,7 +419,9 @@ AlterCollation(AlterCollationStmt *stmt)
if (collOid == DEFAULT_COLLATION_OID)
ereport(ERROR,
(errmsg("cannot refresh version of default collation"),
errhint("Use ALTER DATABASE ... REFRESH COLLATION VERSION instead.")));
/* translator: %s is an SQL command */
errhint("Use %s instead.",
"ALTER DATABASE ... REFRESH COLLATION VERSION")));

if (!object_ownercheck(CollationRelationId, collOid, GetUserId()))
aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_COLLATION,
Expand Down
20 changes: 15 additions & 5 deletions src/backend/commands/tablecmds.c
Expand Up @@ -7996,15 +7996,19 @@ ATExecColumnDefault(Relation rel, const char *colName,
(errcode(ERRCODE_SYNTAX_ERROR),
errmsg("column \"%s\" of relation \"%s\" is an identity column",
colName, RelationGetRelationName(rel)),
newDefault ? 0 : errhint("Use ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY instead.")));
/* translator: %s is an SQL ALTER command */
newDefault ? 0 : errhint("Use %s instead.",
"ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY")));

if (TupleDescAttr(tupdesc, attnum - 1)->attgenerated)
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
errmsg("column \"%s\" of relation \"%s\" is a generated column",
colName, RelationGetRelationName(rel)),
newDefault || TupleDescAttr(tupdesc, attnum - 1)->attgenerated != ATTRIBUTE_GENERATED_STORED ? 0 :
errhint("Use ALTER TABLE ... ALTER COLUMN ... DROP EXPRESSION instead.")));
/* translator: %s is an SQL ALTER command */
errhint("Use %s instead.",
"ALTER TABLE ... ALTER COLUMN ... DROP EXPRESSION")));

/*
* Remove any old default for the column. We use RESTRICT here for
Expand Down Expand Up @@ -14534,7 +14538,9 @@ ATExecChangeOwner(Oid relationOid, Oid newOwnerId, bool recursing, LOCKMODE lock
(errcode(ERRCODE_WRONG_OBJECT_TYPE),
errmsg("\"%s\" is a composite type",
NameStr(tuple_class->relname)),
errhint("Use ALTER TYPE instead.")));
/* translator: %s is an SQL ALTER command */
errhint("Use %s instead.",
"ALTER TYPE")));
break;
case RELKIND_TOASTVALUE:
if (recursing)
Expand Down Expand Up @@ -17942,7 +17948,9 @@ RangeVarCallbackForAlterRelation(const RangeVar *rv, Oid relid, Oid oldrelid,
ereport(ERROR,
(errcode(ERRCODE_WRONG_OBJECT_TYPE),
errmsg("\"%s\" is a composite type", rv->relname),
errhint("Use ALTER TYPE instead.")));
/* translator: %s is an SQL ALTER command */
errhint("Use %s instead.",
"ALTER TYPE")));

/*
* Don't allow ALTER TABLE .. SET SCHEMA on relations that can't be moved
Expand All @@ -17961,7 +17969,9 @@ RangeVarCallbackForAlterRelation(const RangeVar *rv, Oid relid, Oid oldrelid,
(errcode(ERRCODE_WRONG_OBJECT_TYPE),
errmsg("cannot change schema of composite type \"%s\"",
rv->relname),
errhint("Use ALTER TYPE instead.")));
/* translator: %s is an SQL ALTER command */
errhint("Use %s instead.",
"ALTER TYPE")));
else if (relkind == RELKIND_TOASTVALUE)
ereport(ERROR,
(errcode(ERRCODE_WRONG_OBJECT_TYPE),
Expand Down
12 changes: 9 additions & 3 deletions src/backend/commands/typecmds.c
Expand Up @@ -3633,7 +3633,9 @@ RenameType(RenameStmt *stmt)
(errcode(ERRCODE_WRONG_OBJECT_TYPE),
errmsg("%s is a table's row type",
format_type_be(typeOid)),
errhint("Use ALTER TABLE instead.")));
/* translator: %s is an SQL ALTER command */
errhint("Use %s instead.",
"ALTER TABLE")));

/* don't allow direct alteration of array types, either */
if (IsTrueArrayType(typTup))
Expand Down Expand Up @@ -3714,7 +3716,9 @@ AlterTypeOwner(List *names, Oid newOwnerId, ObjectType objecttype)
(errcode(ERRCODE_WRONG_OBJECT_TYPE),
errmsg("%s is a table's row type",
format_type_be(typeOid)),
errhint("Use ALTER TABLE instead.")));
/* translator: %s is an SQL ALTER command */
errhint("Use %s instead.",
"ALTER TABLE")));

/* don't allow direct alteration of array types, either */
if (IsTrueArrayType(typTup))
Expand Down Expand Up @@ -4005,7 +4009,9 @@ AlterTypeNamespaceInternal(Oid typeOid, Oid nspOid,
(errcode(ERRCODE_WRONG_OBJECT_TYPE),
errmsg("%s is a table's row type",
format_type_be(typeOid)),
errhint("Use ALTER TABLE instead.")));
/* translator: %s is an SQL ALTER command */
errhint("Use %s instead.",
"ALTER TABLE")));

if (oldNspOid != nspOid)
{
Expand Down

0 comments on commit 36a14af

Please sign in to comment.