Skip site navigation (1) Skip section navigation (2)

Re: Rare corruption of pg_class index

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Greg Sabino Mullane" <greg(at)turnstep(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Rare corruption of pg_class index
Date: 2007-01-03 15:50:17
Message-ID: 5358.1167839417@sss.pgh.pa.us (view raw or flat)
Thread:
Lists: pgsql-hackers
"Greg Sabino Mullane" <greg(at)turnstep(dot)com> writes:
> So as a general rule, the system tables should be considered a special
> case as far as transactional activity? To be more precise, you are saying
> that a system table must be locked in access exclusive mode before any
> change is made to guarantee no problems occur?

No, I didn't say that --- I said that you need to lock the table whose
schema you're trying to modify, to ensure that no one else is in the
midst of accessing it using the old schema info.

> So the oft-given advice of "UPDATE pg_class SET relhasrules = false"
> is actually completely unsafe unless the entire referenced table is
> completely locked, and unless you are using at least 8.2?

I don't recall having ever given *that* advice to anyone.  But yes,
it's unsafe if there might be concurrent access to that table.  The
only context I've ever seen people use this sort of thing in is
pg_restore --disable-triggers, and in that situation I think there's
an implicit assumption that no one else is busy modifying the table
you're restoring into.

			regards, tom lane

In response to

Responses

pgsql-hackers by date

Next:From: Tom LaneDate: 2007-01-03 16:07:35
Subject: Re: InitPostgres and flatfiles question
Previous:From: Markus SchiltknechtDate: 2007-01-03 15:49:51
Subject: InitPostgres and flatfiles question

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group