• Alvaro Herrera's avatar
    Review logical replication tablesync code · b05fe7b4
    Alvaro Herrera authored
    Most importantly, remove optimization in LogicalRepSyncTableStart that
    skips the normal walrcv_startstreaming/endstreaming dance.  The
    optimization is not critically important for production uses anyway,
    since it only fires in cases with no activity, and saves an
    uninteresting amount of work even then.  Critically, it obscures bugs by
    hiding the interesting code path from test cases.
    
    Also: in GetSubscriptionRelState, remove pointless relation open; access
    pg_subscription_rel->srsubstate with GETSTRUCT as is typical rather than
    SysCacheGetAttr; remove unused 'missing_ok' argument.
    In wait_for_relation_state_change, use explicit catalog snapshot
    invalidation rather than obscurely (and expensively) through
    GetLatestSnapshot.
    In various places: sprinkle comments more liberally and rewrite a number
    of them.  Other cosmetic code improvements.
    
    No backpatch, since no bug is being fixed here.
    
    Author: Álvaro Herrera <alvherre@alvh.no-ip.org>
    Reviewed-by: default avatarPetr Jelínek <petr.jelinek@2ndquadrant.com>
    Discussion: https://postgr.es/m/20201010190637.GA5774@alvherre.pgsql
    b05fe7b4
pg_subscription_rel.h 2.89 KB