Thread: Error when dropping table

Error when dropping table

From
"Chris White (cjwhite)"
Date:
On 7.4.2, I am trying to drop a table using the command
 
drop table vm_message cascade;
 
and I get the error message
 
relation "vm_message" has rel_triggers = 0
 
and the table is not dropped. What does this message mean and how can I drop the table?
 
 

Re: Error when dropping table

From
Tom Lane
Date:
"Chris White (cjwhite)" <cjwhite@cisco.com> writes:
> On 7.4.2, I am trying to drop a table using the command
> drop table vm_message cascade;
> and I get the error message
> relation "vm_message" has rel_triggers = 0

I can't find any such error message in the 7.4 sources.  Could we see
the exact error display with "\set VERBOSITY verbose"?

            regards, tom lane

Re: Error when dropping table

From
Tom Lane
Date:
Tom Lane <tgl@sss.pgh.pa.us> writes:
> "Chris White (cjwhite)" <cjwhite@cisco.com> writes:
>> On 7.4.2, I am trying to drop a table using the command
>> drop table vm_message cascade;
>> and I get the error message
>> relation "vm_message" has rel_triggers = 0

> I can't find any such error message in the 7.4 sources.

Oh, here it is --- should have checked the spelling of the pg_class
field:
        elog(ERROR, "relation \"%s\" has reltriggers = 0",
             RelationGetRelationName(rel));

The most likely bet is that a failed pg_restore left the relation's
triggers disabled.  You can fix this by doing what the restore should
have done:

UPDATE pg_catalog.pg_class SET reltriggers =
(SELECT count(*) FROM pg_catalog.pg_trigger where pg_class.oid = tgrelid)
FROM pg_catalog.pg_namespace
WHERE relnamespace = pg_namespace.oid AND nspname !~ '^pg_';

            regards, tom lane

Re: Error when dropping table

From
"Chris White (cjwhite)"
Date:
ERROR:  XX000: relation "vm_message" has rel_triggers = 0
LOCATION:  RemoveTriggerById, commands/trigger.c:581


-----Original Message-----
From: pgsql-admin-owner@postgresql.org
[mailto:pgsql-admin-owner@postgresql.org] On Behalf Of Tom Lane
Sent: Wednesday, June 23, 2004 1:32 PM
To: cjwhite@cisco.com
Cc: pgsql-admin@postgresql.org
Subject: Re: [ADMIN] Error when dropping table


"Chris White (cjwhite)" <cjwhite@cisco.com> writes:
> On 7.4.2, I am trying to drop a table using the command
> drop table vm_message cascade;
> and I get the error message
> relation "vm_message" has rel_triggers = 0

I can't find any such error message in the 7.4 sources.  Could we see
the exact error display with "\set VERBOSITY verbose"?

            regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
    (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)


Re: Error when dropping table

From
"Chris White (cjwhite)"
Date:
Thanks

-----Original Message-----
From: Tom Lane [mailto:tgl@sss.pgh.pa.us]
Sent: Wednesday, June 23, 2004 1:38 PM
To: cjwhite@cisco.com
Cc: pgsql-admin@postgresql.org
Subject: Re: [ADMIN] Error when dropping table


Tom Lane <tgl@sss.pgh.pa.us> writes:
> "Chris White (cjwhite)" <cjwhite@cisco.com> writes:
>> On 7.4.2, I am trying to drop a table using the command
>> drop table vm_message cascade;
>> and I get the error message
>> relation "vm_message" has rel_triggers = 0

> I can't find any such error message in the 7.4 sources.

Oh, here it is --- should have checked the spelling of the pg_class
field:
        elog(ERROR, "relation \"%s\" has reltriggers = 0",
             RelationGetRelationName(rel));

The most likely bet is that a failed pg_restore left the relation's
triggers disabled.  You can fix this by doing what the restore should
have done:

UPDATE pg_catalog.pg_class SET reltriggers =
(SELECT count(*) FROM pg_catalog.pg_trigger where pg_class.oid =
tgrelid)
FROM pg_catalog.pg_namespace
WHERE relnamespace = pg_namespace.oid AND nspname !~ '^pg_';

            regards, tom lane