• Fujii Masao's avatar
    Fix bug in Tid scan. · cb5b2861
    Fujii Masao authored
    Commit 147e3722 changed Tid scan so that it calls table_beginscan()
    and uses the scan option for seq scan. This change caused two issues.
    
    (1) The change caused Tid scan to take a predicate lock on the entire
           relation in serializable transaction even when relation-level
           lock is not necessary. This could lead to an unexpected
           serialization error.
    
    (2) The change caused Tid scan to increment the number of seq_scan
           in pg_stat_*_tables views even though it's not seq scan. This
           could confuse the users.
    
    This commit adds the scan option for Tid scan and makes Tid scan
    use it, to avoid those issues.
    
    Back-patch to v12, where the bug was introduced.
    
    Author: Tatsuhito Kasahara
    Reviewed-by: Kyotaro Horiguchi, Masahiko Sawada, Fujii Masao
    Discussion: https://postgr.es/m/CAP0=ZVKy+gTbFmB6X_UW0pP3WaeJ-fkUWHoD-pExS=at3CY76g@mail.gmail.com
    cb5b2861
tableam.h 63.5 KB