Alvaro Herrera <alvherre@commandprompt.com> writes:
> Gregory Stark wrote:
> > Tom Lane <tgl@sss.pgh.pa.us> writes:
> >
> > > Matteo Sgalaberni <sgala@sgala.com> writes:
> > > > Good to know this...but why this behaviour? it'is lovely...:)
> > >
> > > Open transactions are tracked across the whole cluster. This is
> > > necessary when vacuuming shared catalogs. In principle we could
> > > track per-database xmin values as well, but the distributed overhead
> > > that'd be added to *every* GetSnapshotData call is a bit worrisome.
> >
> > Don't we do that now in CVS (ie, in 8.2)?
>
> No, we don't.
I must be misunderstanding Tom's comment then.
What I'm referring to is lazy_vacuum_rel() calls vacuum_set_xid_limits with
the relisshared flag of the relation. vacuum_set_xid_limits passes that to
GetOldestXmin as the allDbs parameter. GetOldestXmin ignores transactions not
connected to the same database unless allDbs is true.
--
greg