On Thu, Nov 29, 2012 at 12:09 PM, Jeff Janes <jeff.ja...@gmail.com> wrote:

>
> But If you do keep the drop index inside the transaction, then you
> would probably be better off using truncate rather than delete, and
> rebuild the index non-concurrently and move that inside the
> transaction as well.
>
>

Hmm....  From the 9.2 manual it seems that might not work out so well:

TRUNCATE is not MVCC-safe (see Chapter
13<http://www.postgresql.org/docs/9.2/static/mvcc.html> for
general information about MVCC). After truncation, the table will appear
empty to all concurrent transactions, even if they are using a snapshot
taken before the truncation occurred.

It looks like other transactions could find an empty table while it was
being reloaded under that approach.

Reply via email to