From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Jeff Amiel <becauseimjeff(at)yahoo(dot)com>, Alvaro Herrera <alvherre(at)commandprompt(dot)com>, pgsql-general(at)postgresql(dot)org, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Corrupt database? 8.1/FreeBSD6.0 |
Date: | 2007-01-14 04:22:49 |
Message-ID: | 3445.1168748569@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general pgsql-hackers |
I wrote:
> ... but I suddenly fear that we've missed a fundamental point about
> pg_clog truncation. And WAL wraparound for that matter. To wit, a
> sufficiently long-lived temp table could contain old XIDs, and there's
> no way for anyone except the owning backend to clean them out, or even
> guarantee that they're marked committed.
After further thought I believe this is OK as of 8.2, because a temp
table's relfrozenxid is tracked independently of any other's. (This
problem puts a stake through the heart of the recently-discussed idea
that a temp table might be able to get along without a globally visible
pg_class entry, however.)
But it seems that we need a band-aid for 8.1 and earlier. The simplest
fix I can think of is for vacuum not to attempt to advance the
datvacuumxid/datfrozenxid fields if it skipped over any temp tables of
other backends. That's a bit nasty, since in a database making heavy
use of temp tables, you might do a whole lot of vacuums without ever
meeting that condition. Anyone have a better idea?
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Sim Zacks | 2007-01-14 09:15:52 | like query backslash |
Previous Message | Devrim GUNDUZ | 2007-01-14 00:05:54 | Re: installing 8.2 on solaris 10? |
From | Date | Subject | |
---|---|---|---|
Next Message | Marko Kreen | 2007-01-14 11:21:37 | Re: [PATCHES] vcbuild optional packages |
Previous Message | Dave Cramer | 2007-01-14 03:08:57 | Re: Performance of Parser? |