aboutsummaryrefslogtreecommitdiff
path: root/src/backend/catalog/pg_constraint.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/catalog/pg_constraint.c')
-rw-r--r--src/backend/catalog/pg_constraint.c22
1 files changed, 9 insertions, 13 deletions
diff --git a/src/backend/catalog/pg_constraint.c b/src/backend/catalog/pg_constraint.c
index 9aa13517ea4..d92bbf84cc0 100644
--- a/src/backend/catalog/pg_constraint.c
+++ b/src/backend/catalog/pg_constraint.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/catalog/pg_constraint.c,v 1.48 2009/10/12 19:49:24 adunstan Exp $
+ * $PostgreSQL: pgsql/src/backend/catalog/pg_constraint.c,v 1.49 2009/10/13 00:53:07 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -705,7 +705,8 @@ AlterConstraintNamespaces(Oid ownerId, Oid oldNspId,
/*
* GetConstraintByName
- * Find a constraint with the specified name.
+ * Find a constraint on the specified relation with the specified name.
+ * Returns constraint's OID.
*/
Oid
GetConstraintByName(Oid relid, const char *conname)
@@ -725,7 +726,8 @@ GetConstraintByName(Oid relid, const char *conname)
ScanKeyInit(&skey[0],
Anum_pg_constraint_conrelid,
- BTEqualStrategyNumber, F_OIDEQ, relid);
+ BTEqualStrategyNumber, F_OIDEQ,
+ ObjectIdGetDatum(relid));
scan = systable_beginscan(pg_constraint, ConstraintRelidIndexId, true,
SnapshotNow, 1, skey);
@@ -737,28 +739,22 @@ GetConstraintByName(Oid relid, const char *conname)
if (strcmp(NameStr(con->conname), conname) == 0)
{
if (OidIsValid(conOid))
- {
- char *relname = get_rel_name(relid);
ereport(ERROR,
(errcode(ERRCODE_DUPLICATE_OBJECT),
- errmsg("table \"%s\" has multiple constraints named \"%s\"",
- (relname ? relname : "(unknown)"), conname)));
- }
+ errmsg("table \"%s\" has multiple constraints named \"%s\"",
+ get_rel_name(relid), conname)));
conOid = HeapTupleGetOid(tuple);
}
}
systable_endscan(scan);
- /* If no constraint exists for the relation specified, notify user */
+ /* If no such constraint exists, complain */
if (!OidIsValid(conOid))
- {
- char *relname = get_rel_name(relid);
ereport(ERROR,
(errcode(ERRCODE_UNDEFINED_OBJECT),
errmsg("constraint \"%s\" for table \"%s\" does not exist",
- conname, (relname ? relname : "(unknown)"))));
- }
+ conname, get_rel_name(relid))));
heap_close(pg_constraint, AccessShareLock);