You do not need to reindex, because CLUSTER
effectively does it for you.
More specifically, CLUSTER
locks the source table then creates a new copy of it ordered according to the target index. It creates indexes on the new copy then replaces the old table and indexes with the new ones.
Note that this is also true of VACUUM FULL
in 9.0+.
If you've been seeing discussion suggesting that CLUSTER
bloats indexes it could be people who're assuming that CLUSTER
works like pre-9.0 VACUUM FULL
. You might also be seeing and misreading discussions that mention index bloat caused by the old VACUUM FULL
implementation and suggesting CLUSTER
as an alternative.
This is implied in the documentation:
a temporary copy of the table is created that contains the table data in the index order. Temporary copies of each index on the table are created as well. Therefore, you need free space on disk at least equal to the sum of the table size and the index sizes
What it doesn't say, but should, is that those temporary copies then replace the original table. (Bold mine).