• Michael Paquier's avatar
    Preserve index data in pg_statistic across REINDEX CONCURRENTLY · b17ff07a
    Michael Paquier authored
    Statistics associated to an index got lost after running REINDEX
    CONCURRENTLY, while the non-concurrent case preserves these correctly.
    The concurrent and non-concurrent operations need to be consistent for
    the end-user, and missing statistics would force to wait for a new
    analyze to happen, which could take some time depending on the activity
    of the existing autovacuum workers.  This issue is fixed by copying any
    existing entries in pg_statistic associated to the old index to the new
    one.  Note that this copy is already done with the data of the index in
    the stats collector.
    
    Reported-by: Fabrízio de Royes Mello
    Author: Michael Paquier, Fabrízio de Royes Mello
    Reviewed-by: Justin Pryzby
    Discussion: https://postgr.es/m/CAFcNs+qpFPmiHd1oTXvcPdvAHicJDA9qBUSujgAhUMJyUMb+SA@mail.gmail.com
    Backpatch-through: 12
    b17ff07a
heap.c 114 KB