From 3498ea830828feb8c5f6cf155a40df012cbc6d64 Mon Sep 17 00:00:00 2001 From: Hiroshi Inoue Date: Wed, 30 Aug 2000 08:48:55 +0000 Subject: [PATCH] Improve the following. =# create table t (id int4 unique); NOTICE: CREATE TABLE/UNIQUE will create implicit index 't_id_key' for table 't' =# begin; query: drop table t; NOTICE: Caution: DROP TABLE cannot be rolled back, so don't abort now NOTICE: Caution: DROP INDEX cannot be rolled back, so don't abort now =# rollback; =# drop table t; NOTICE: mdopen: couldn't open t: No such file or directory NOTICE: RelationIdBuildRelation: smgropen(t): No such file or directory NOTICE: mdopen: couldn't open t: No such file or directory NOTICE: mdopen: couldn't open t: No such file or directory NOTICE: mdopen: couldn't open t_id_key: No such file or directory NOTICE: RelationIdBuildRelation: smgropen(t_id_key): No such file or directory NOTICE: mdopen: couldn't open t: No such file or directory NOTICE: RelationIdBuildRelation: smgropen(t): No such file or directory NOTICE: mdopen: couldn't open t: No such file or directory ERROR: cannot open relation t --- src/backend/utils/cache/relcache.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c index 59758adb62..013ade7528 100644 --- a/src/backend/utils/cache/relcache.c +++ b/src/backend/utils/cache/relcache.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.109 2000/08/06 04:39:03 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.110 2000/08/30 08:48:55 inoue Exp $ * *------------------------------------------------------------------------- */ @@ -1595,7 +1595,10 @@ RelationClearRelation(Relation relation, bool rebuildIt) * this is kind of expensive, but I think we must do it in case * relation has been truncated... */ - relation->rd_nblocks = RelationGetNumberOfBlocks(relation); + if (relation->rd_unlinked) + relation->rd_nblocks = 0; + else + relation->rd_nblocks = RelationGetNumberOfBlocks(relation); if (relDescChanged && !RelationHasReferenceCountZero(relation)) elog(ERROR, "RelationClearRelation: relation %u modified while in use",