• Alvaro Herrera's avatar
    Fix snapshot management, take two. · 07cefdfb
    Alvaro Herrera authored
    Partially revert the previous patch I installed and replace it with a more
    general fix: any time a snapshot is pushed as Active, we need to ensure that it
    will not be modified in the future.  This means that if the same snapshot is
    used as CurrentSnapshot, it needs to be copied separately.  This affects
    serializable transactions only, because CurrentSnapshot has already been copied
    by RegisterSnapshot and so PushActiveSnapshot does not think it needs another
    copy.  However, CommandCounterIncrement would modify CurrentSnapshot, whereas
    ActiveSnapshots must not have their command counters incremented.
    
    I say "partially" because the regression test I added for the previous bug
    has been kept.
    
    (This restores 8.3 behavior, because before snapmgr.c existed, any snapshot set
    as Active was copied.)
    
    Per bug report from Stuart Bishop in
    6bc73d4c0910042358k3d1adff3qa36f8df75198ecea@mail.gmail.com
    07cefdfb
triggers.sql 12.9 KB