diff options
author | Hiroshi Inoue | 2000-08-30 08:48:55 +0000 |
---|---|---|
committer | Hiroshi Inoue | 2000-08-30 08:48:55 +0000 |
commit | 3498ea830828feb8c5f6cf155a40df012cbc6d64 (patch) | |
tree | d0290bbf49879b57864b2a5354785a5af3a49d83 | |
parent | 67cd018e772e31157030dcfbb9f6c01d9c308658 (diff) |
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
-rw-r--r-- | src/backend/utils/cache/relcache.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c index 59758adb62d..013ade75288 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", |