• Tom Lane's avatar
    Fix REFRESH MATERIALIZED VIEW to report activity to the stats collector. · 17f8ffa1
    Tom Lane authored
    The non-concurrent code path for REFRESH MATERIALIZED VIEW failed to
    report its updates to the stats collector.  This is bad since it means
    auto-analyze doesn't know there's any work to be done.  Adjust it to
    report the refresh as a table truncate followed by insertion of an
    appropriate number of rows.
    
    Since a matview could contain more than INT_MAX rows, change the
    signature of pgstat_count_heap_insert() to accept an int64 rowcount.
    (The accumulator it's adding into is already int64, but existing
    callers could not insert more than a small number of rows at once,
    so the argument had been declared just "int n".)
    
    This is surely a bug fix, but changing pgstat_count_heap_insert()'s API
    seems too risky for the back branches.  Given the lack of previous
    complaints, I'm not sure it's a big enough problem to justify a kluge
    solution that would avoid that.  So, no back-patch, at least for now.
    
    Jim Mlodgenski, adjusted a bit by me
    
    Discussion: https://postgr.es/m/CAB_5SRchSz7-WmdO5szdiknG8Oj_GGqJytrk1KRd11yhcMs1KQ@mail.gmail.com
    17f8ffa1
matview.c 26.9 KB