Improve error message for case where DROP TABLE is rejected because
authorTom Lane
Fri, 22 Dec 2000 19:21:37 +0000 (19:21 +0000)
committerTom Lane
Fri, 22 Dec 2000 19:21:37 +0000 (19:21 +0000)
table has a child table.

src/backend/catalog/heap.c

index 3da6d82d4d0ee3fa141602f17642051980dfe9e7..b2d2566bf3f290ea255c9310ac249129b9643b30 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.152 2000/11/16 22:30:17 tgl Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.153 2000/12/22 19:21:37 tgl Exp $
  *
  *
  * INTERFACE ROUTINES
@@ -61,6 +61,7 @@
 #include "utils/builtins.h"
 #include "utils/catcache.h"
 #include "utils/fmgroids.h"
+#include "utils/lsyscache.h"
 #include "utils/relcache.h"
 #include "utils/syscache.h"
 #include "utils/temprel.h"
@@ -970,12 +971,16 @@ RelationRemoveInheritance(Relation relation)
    if (HeapTupleIsValid(tuple))
    {
        Oid         subclass = ((Form_pg_inherits) GETSTRUCT(tuple))->inhrelid;
+       char       *subclassname;
 
-       heap_endscan(scan);
-       heap_close(catalogRelation, RowExclusiveLock);
-
-       elog(ERROR, "Relation '%u' inherits '%s'",
-            subclass, RelationGetRelationName(relation));
+       subclassname = get_rel_name(subclass);
+       /* Just in case get_rel_name fails... */
+       if (subclassname)
+           elog(ERROR, "Relation \"%s\" inherits from \"%s\"",
+                subclassname, RelationGetRelationName(relation));
+       else
+           elog(ERROR, "Relation %u inherits from \"%s\"",
+                subclass, RelationGetRelationName(relation));
    }
    heap_endscan(scan);