diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2004-05-08 00:34:49 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2004-05-08 00:34:49 +0000 |
commit | dd16b7aa9e1ecbe6cdd83a742f4e1655d460b38d (patch) | |
tree | 8049deed7996450ad3e87b48f7a0d47233513953 /src/backend/commands/indexcmds.c | |
parent | 7c6baade7b1c3decf37cc589427adee053be74f1 (diff) | |
download | postgresql-dd16b7aa9e1ecbe6cdd83a742f4e1655d460b38d.tar.gz postgresql-dd16b7aa9e1ecbe6cdd83a742f4e1655d460b38d.zip |
Get rid of cluster.c's apparatus for rebuilding a relation's indexes
in favor of using the REINDEX TABLE apparatus, which does the same thing
simpler and faster. Also, make TRUNCATE not use cluster.c at all, but
just assign a new relfilenode and REINDEX. This partially addresses
Hartmut Raschick's complaint from last December that 7.4's TRUNCATE is
an order of magnitude slower than prior releases. By getting rid of
a lot of unnecessary catalog updates, these changes buy back about a
factor of two (on my system). The remaining overhead seems associated
with creating and deleting storage files, which we may not be able to
do much about without abandoning transaction safety for TRUNCATE.
Diffstat (limited to 'src/backend/commands/indexcmds.c')
-rw-r--r-- | src/backend/commands/indexcmds.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index efcc70c6856..448f99e1d37 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/indexcmds.c,v 1.118 2004/05/05 04:48:45 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/commands/indexcmds.c,v 1.119 2004/05/08 00:34:49 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -826,7 +826,7 @@ ReindexTable(RangeVar *relation, bool force /* currently unused */ ) ReleaseSysCache(tuple); - if (!reindex_relation(heapOid)) + if (!reindex_relation(heapOid, true)) ereport(NOTICE, (errmsg("table \"%s\" has no indexes", relation->relname))); @@ -936,7 +936,7 @@ ReindexDatabase(const char *dbname, bool force /* currently unused */, StartTransactionCommand(); SetQuerySnapshot(); /* might be needed for functions in * indexes */ - if (reindex_relation(relid)) + if (reindex_relation(relid, true)) ereport(NOTICE, (errmsg("table \"%s\" was reindexed", get_rel_name(relid)))); |