On 12/10/12 5:21 PM, Simon Riggs wrote: > On 10 December 2012 22:18, Peter Eisentraut <pete...@gmx.net> wrote: >> On 12/8/12 9:40 AM, Tom Lane wrote: >>> I'm tempted to propose that REINDEX CONCURRENTLY simply not try to >>> preserve the index name exactly. Something like adding or removing >>> trailing underscores would probably serve to generate a nonconflicting >>> name that's not too unsightly. >> >> If you think you can rename an index without an exclusive lock, then why >> not rename it back to the original name when you're done? > > Because the index isn't being renamed. An alternate equivalent index > is being created instead.
Right, basically, you can do this right now using CREATE INDEX CONCURRENTLY ${name}_tmp ... DROP INDEX CONCURRENTLY ${name}; ALTER INDEX ${name}_tmp RENAME TO ${name}; The only tricks here are if ${name}_tmp is already taken, in which case you might as well just error out (or try a few different names), and if ${name} is already in use by the time you get to the last line, in which case you can log a warning or an error. What am I missing? -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers