Bruce McAlister wrote:
> Martijn van Oosterhout wrote:
> > All the values here look OK, except one:
> >
> > On Thu, Jun 28, 2007 at 07:50:36AM +0100, Bruce McAlister wrote:
> >> blueface-crm=# select oid, relfrozenxid from pg_class where relkind in
> >> ('r', 't');
> >> oid | relfrozenxid
> >> ---------+--------------
> >> 2570051 | 2947120794
> >
> > Whatever this table is, the freeze XID isn't getting updated for some
> > reason...
Doh.
> This looks like a temporary relation,
>
> temp4295 | 2947120794
>
> Is there a way we can manually force these to update?
No. Only the session that created the temp table can vacuum it.
Autovacuum skips temp tables. I guess the only thing you can do here is
close that session.
I'm thinking that maybe should make vac_update_datfrozenxid ignore temp
tables. But this doesn't really work, because if we were to truncate
pg_clog there would be tuples on the temp table marked with XIDs that
are nowhere to be found. Maybe we could make some noise about it
though.
This is a problem only in recent releases (8.2) because we started
allowing the max freeze age be configurable.
--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support