diff options
author | Bruce Momjian <bruce@momjian.us> | 2002-12-06 03:28:34 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2002-12-06 03:28:34 +0000 |
commit | 853153ca6dfdf2bdf6ce800216de75b2fefbb4f1 (patch) | |
tree | a9911b35cf84db7bc101dc97a5e788bc3484f69c /src/backend/catalog/pg_constraint.c | |
parent | 36580c8e2112e808f5847c4021fabe458096b134 (diff) | |
download | postgresql-853153ca6dfdf2bdf6ce800216de75b2fefbb4f1.tar.gz postgresql-853153ca6dfdf2bdf6ce800216de75b2fefbb4f1.zip |
ALTER DOMAIN .. SET / DROP NOT NULL
ALTER DOMAIN .. SET / DROP DEFAULT
ALTER DOMAIN .. ADD / DROP CONSTRAINT
New files:
- doc/src/sgml/ref/alter_domain.sgml
Rod Taylor
Diffstat (limited to 'src/backend/catalog/pg_constraint.c')
-rw-r--r-- | src/backend/catalog/pg_constraint.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/backend/catalog/pg_constraint.c b/src/backend/catalog/pg_constraint.c index 7cd105928c3..d4e06a17e00 100644 --- a/src/backend/catalog/pg_constraint.c +++ b/src/backend/catalog/pg_constraint.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/catalog/pg_constraint.c,v 1.8 2002/11/15 02:50:05 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/catalog/pg_constraint.c,v 1.9 2002/12/06 03:28:27 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -199,6 +199,7 @@ CreateConstraintEntry(const char *constraintName, domobject.classId = RelOid_pg_type; domobject.objectId = domainId; + domobject.objectSubId = 0; recordDependencyOn(&conobject, &domobject, DEPENDENCY_AUTO); } @@ -496,15 +497,16 @@ RemoveConstraintById(Oid conId) HeapTuple typTup; ScanKeyData typKey[1]; SysScanDesc typScan; + int nkeys = 0; typRel = heap_openr(TypeRelationName, RowExclusiveLock); - ScanKeyEntryInitialize(&typKey[0], 0x0, - Anum_pg_constraint_contypid, F_OIDEQ, + ScanKeyEntryInitialize(&typKey[nkeys++], 0x0, + ObjectIdAttributeNumber, F_OIDEQ, ObjectIdGetDatum(con->contypid)); typScan = systable_beginscan(typRel, TypeOidIndex, true, - SnapshotNow, 1, typKey); + SnapshotNow, nkeys, typKey); typTup = systable_getnext(typScan); @@ -517,6 +519,11 @@ RemoveConstraintById(Oid conId) /* Keep lock on domain type until end of xact */ heap_close(typRel, NoLock); } + else + { + elog(ERROR, "RemoveConstraintById: Constraint %u is not a known type", + conId); + } /* Fry the constraint itself */ simple_heap_delete(conDesc, &tup->t_self); |