Search Postgresql Archives

Re: Online index builds

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2006-12-12 at 19:13 -0500, Tom Lane wrote:
> Jeff Davis <pgsql@xxxxxxxxxxx> 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.
> 

Ok, fair enough. I just wanted to make sure I understood the reason why
we couldn't (shouldn't?) do it.

> 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.
> 

It essentially does boil down to just convenience. In general we don't
have much ability to change primary key status for columns without
creating/dropping indexes non-concurrently. Admittedly, that isn't
important, but would be convenient.

Regards,
	Jeff Davis




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux