Alvaro Herrera <alvherre@commandprompt.com> writes:
> Tom Lane wrote:
>> 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?
> That seems nasty. Can we examine the xmin of the pg_class entry for
> temp tables instead?
No, because any sort of schema update on the temp table would rewrite
its pg_class row with a newer version. You couldn't assume that the
pg_class row is older than what's in the table. Consider this perfectly
reasonable scenario:
CREATE TEMP TABLE foo ...
COPY foo FROM ...
CREATE INDEX ... <- must set relhasindex
regards, tom lane