BUG #6048: TRUNCATE vs TRUNCATE CASCADE: misleading message - Mailing list pgsql-bugs

From Artiom Makarov
Subject BUG #6048: TRUNCATE vs TRUNCATE CASCADE: misleading message
Date
Msg-id 201106021123.p52BNgZL053022@wwwmaster.postgresql.org
Whole thread Raw
Responses Re: BUG #6048: TRUNCATE vs TRUNCATE CASCADE: misleading message
List pgsql-bugs
The following bug has been logged online:

Bug reference:      6048
Logged by:          Artiom Makarov
Email address:      artiom.makarov@gmail.com
PostgreSQL version: 9.04
Operating system:   2.6.32-30-server #59-Ubuntu SMP Tue Mar 1 22:46:09 UTC
2011 x86_64 GNU/Linux
Description:        TRUNCATE vs TRUNCATE CASCADE: misleading message
Details:

create table tr_test1(id1 int, primary key(id1));
create table tr_test2(id2 int, id int, primary key(id2), foreign key (id)
references tr_test1(id1) MATCH SIMPLE ON UPDATE RESTRICT ON DELETE
RESTRICT);
create table tr_test3(id3 int, id int, primary key(id3), foreign key (id)
references tr_test2(id2) MATCH SIMPLE ON UPDATE RESTRICT ON DELETE
RESTRICT);

insert into tr_test1(id1) values (1);
insert into tr_test2(id2,id) values (1,1);
insert into tr_test2(id2,id) values (2,1);
insert into tr_test3(id3,id) values (1,2);

truncate tr_test1;

ERROR: cannot truncate a table referenced in a foreign key constraint
SQL state: 0A000
Detail: Table "tr_test2" references "tr_test1".
Hint: Truncate table "tr_test2" at the same time, or use TRUNCATE ...
CASCADE.

This is definetly misleading message, because of when applying truncate
tr_test1 CASCADE; all 3 tables truncated:

NOTICE:  truncate cascades to table "tr_test2"
NOTICE:  truncate cascades to table "tr_test3"


While drop schema public; command list all affected objects:

ERROR: cannot drop schema public because other objects depend on it

SQL state: 2BP01
Detail: table tr_test1 depends on schema public
table tr_test2 depends on schema public
table tr_test3 depends on schema public
Hint: Use DROP ... CASCADE to drop the dependent objects too.

pgsql-bugs by date:

Previous
From: Craig Ringer
Date:
Subject: Re: BUG #6047: prepare p1 as select 'now'::timestamp; then "execute p1" many times, they return the same time
Next
From: Peter Eisentraut
Date:
Subject: Re: collation problem on 9.1-beta1