Re: Online index builds - Mailing list pgsql-general

From Tom Lane
Subject Re: Online index builds
Date
Msg-id 27968.1165968805@sss.pgh.pa.us
Whole thread Raw
In response to Re: Online index builds  (Jeff Davis <pgsql@j-davis.com>)
Responses Re: Online index builds  (Jeff Davis <pgsql@j-davis.com>)
Re: Online index builds  (Csaba Nagy <nagy@ecircle-ag.com>)
List pgsql-general
Jeff Davis <pgsql@j-davis.com> writes:
> On Tue, 2006-12-12 at 18:40 -0500, Tom Lane wrote:
>> No.  What happens if someone renames the table out from under you, to
>> mention just one possibility?

> I'm trying to understand what would actually happen. I assume you mean
> change the name of the index, because after we create the index
> concurrently, it doesn't matter what the table name is.

Well, if you don't like that one, consider ALTER OWNER revoking your
privilege to perform the REINDEX.  Without an explicit check for the
case, the code would proceed to do it anyway.  (And even if it did
check, what then?  You don't really have the right anymore to undo what
you did so far, either.)

Yeah, we could add defenses one by one for the cases we could think of,
but I'd never feel very secure that we'd covered them all.

Another point here is that I think you are assuming that an OID is a
unique-for-all-time identifier for a table or index.  It's not; as soon
as someone drops the table or index, the OID is up for grabs and could
be re-used for an unrelated table or index.  Admittedly one would have
to be quite unlucky to get burnt that way, but deliberately introducing
race conditions in the name of convenience is not my idea of the way to
design a database.

            regards, tom lane

pgsql-general by date:

Previous
From: Jeff Davis
Date:
Subject: Re: Online index builds
Next
From: SCassidy@overlandstorage.com
Date:
Subject: Re: shell script to populate array values