On Thursday, January 10, 2013 12:01 PM Pavan Deolasee wrote:
> On Thu, Jan 10, 2013 at 11:45 AM, Amit Kapila <amit.kapila@huawei.com>
> wrote:
> > On Thursday, January 10, 2013 6:09 AM Josh Berkus wrote:
>
> >>
> >> Surely VACUUM FULL should rebuild the visibility map, and make
> tuples
> >> in
> >> the new relation all-visible, no?
> >
> > I think it cannot made all visible.
> > How about if any transaction in SSI mode is started before Vacuum
> Full, should it see all tuples.
> >
>
> We can definitely do better than what we are doing today and that
> should fix many use cases and rebuild the VM for large part of the
> table if not all. More precisely, in cluster.c we can see what does
> HeapTupleSatisfiesVacuum() returns for every tuple in a page. If there
> are only DEAD or LIVE tuples in a page, we can set the VM bit. We may
> need similar additional checks for LIVE tuples like we have in vacuum
> code path. But its certainly doable.
>> Do we document this behavior or add a TODO item?
> Both?
IMO, we should do both.
With Regards,
Amit Kapila.