]> granicus.if.org Git - postgresql/commit
Get rid of cluster.c's apparatus for rebuilding a relation's indexes
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 8 May 2004 00:34:49 +0000 (00:34 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 8 May 2004 00:34:49 +0000 (00:34 +0000)
commitdd16b7aa9e1ecbe6cdd83a742f4e1655d460b38d
tree8049deed7996450ad3e87b48f7a0d47233513953
parent7c6baade7b1c3decf37cc589427adee053be74f1
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.
src/backend/catalog/index.c
src/backend/commands/cluster.c
src/backend/commands/indexcmds.c
src/backend/commands/tablecmds.c
src/include/catalog/index.h
src/include/commands/cluster.h