• Kevin Grittner's avatar
    Various cleanups for REFRESH MATERIALIZED VIEW CONCURRENTLY. · 841c29c8
    Kevin Grittner authored
    Open and lock each index before checking definition in RMVC.  The
    ExclusiveLock on the related table is not viewed as sufficient to
    ensure that no changes are made to the index definition, and
    invalidation messages from other backends might have been missed.
    Additionally, use RelationGetIndexExpressions() and check for NIL
    rather than doing our own loop.
    
    Protect against redefinition of tid and rowvar operators in RMVC.
    While working on this, noticed that the fixes for bugs found during
    the CF made the UPDATE statement useless, since no rows could
    qualify for that treatment any more.  Ripping out code to support
    the UPDATE statement simplified the operator cleanups.
    
    Change slightly confusing local field name.
    
    Use meaningful alias names on queries in refresh_by_match_merge().
    
    Per concerns of raised by Andres Freund and comments and
    suggestions from Noah Misch.  Some additional issues remain, which
    will be addressed separately.
    841c29c8
matview.c 24.9 KB