• H
    Introduce the concept of relation forks. An smgr relation can now consist · 3f0e808c
    Heikki Linnakangas 提交于
    of multiple forks, and each fork can be created and grown separately.
    
    The bulk of this patch is about changing the smgr API to include an extra
    ForkNumber argument in every smgr function. Also, smgrscheduleunlink and
    smgrdounlink no longer implicitly call smgrclose, because other forks might
    still exist after unlinking one. The callers of those functions have been
    modified to call smgrclose instead.
    
    This patch in itself doesn't have any user-visible effect, but provides the
    infrastructure needed for upcoming patches. The additional forks envisioned
    are a rewritten FSM implementation that doesn't rely on a fixed-size shared
    memory block, and a visibility map to allow skipping portions of a table in
    VACUUM that have no dead tuples.
    3f0e808c
heapam.c 133.2 KB