diff options
Diffstat (limited to 'src/backend/catalog/pg_constraint.c')
-rw-r--r-- | src/backend/catalog/pg_constraint.c | 22 |
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); |