From 9a8b73147c07e02e10e0d0a34aa99d72e3336fb2 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Tue, 29 Mar 2011 17:54:27 -0400
Subject: [PATCH] Clean up overly complex code for issuing some related error
messages.
The original version was unreadable, and not mechanically checkable
either.
---
src/backend/commands/tablecmds.c | 41 ++++++++++++++++++++------------
1 file changed, 26 insertions(+), 15 deletions(-)
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c
index bd18db3b831..886b656b437 100644
--- a/src/backend/commands/tablecmds.c
+++ b/src/backend/commands/tablecmds.c
@@ -3944,23 +3944,34 @@ find_composite_type_dependencies(Oid typeOid, Relation origRelation,
if (rel->rd_rel->relkind == RELKIND_RELATION)
{
- const char *msg;
-
- if (origTypeName
- || origRelation->rd_rel->relkind == RELKIND_COMPOSITE_TYPE)
- msg = gettext_noop("cannot alter type \"%s\" because column \"%s\".\"%s\" uses it");
+ if (origTypeName)
+ ereport(ERROR,
+ (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+ errmsg("cannot alter type \"%s\" because column \"%s\".\"%s\" uses it",
+ origTypeName,
+ RelationGetRelationName(rel),
+ NameStr(att->attname))));
+ else if (origRelation->rd_rel->relkind == RELKIND_COMPOSITE_TYPE)
+ ereport(ERROR,
+ (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+ errmsg("cannot alter type \"%s\" because column \"%s\".\"%s\" uses it",
+ RelationGetRelationName(origRelation),
+ RelationGetRelationName(rel),
+ NameStr(att->attname))));
else if (origRelation->rd_rel->relkind == RELKIND_FOREIGN_TABLE)
- msg = gettext_noop("cannot alter foreign table \"%s\" because column \"%s\".\"%s\" uses its rowtype");
+ ereport(ERROR,
+ (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+ errmsg("cannot alter foreign table \"%s\" because column \"%s\".\"%s\" uses its rowtype",
+ RelationGetRelationName(origRelation),
+ RelationGetRelationName(rel),
+ NameStr(att->attname))));
else
- msg = gettext_noop("cannot alter table \"%s\" because column \"%s\".\"%s\" uses its rowtype");
-
- ereport(ERROR,
- (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
- errmsg(msg,
- origTypeName ? origTypeName
- : RelationGetRelationName(origRelation),
- RelationGetRelationName(rel),
- NameStr(att->attname))));
+ ereport(ERROR,
+ (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+ errmsg("cannot alter table \"%s\" because column \"%s\".\"%s\" uses its rowtype",
+ RelationGetRelationName(origRelation),
+ RelationGetRelationName(rel),
+ NameStr(att->attname))));
}
else if (OidIsValid(rel->rd_rel->reltype))
{
--
GitLab