• Tom Lane's avatar
    Add permissions check: now one must be the Postgres superuser or the · d367f626
    Tom Lane authored
    table owner in order to vacuum a table.  This is mainly to prevent
    denial-of-service attacks via repeated vacuums.  Allow VACUUM to gather
    statistics about system relations, except for pg_statistic itself ---
    not clear that it's worth the trouble to make that case work cleanly.
    Cope with possible tuple size overflow in pg_statistic tuples; I'm
    surprised we never realized that could happen.  Hold a couple of locks
    a little longer to try to prevent deadlocks between concurrent VACUUMs.
    There still seem to be some problems in that last area though :-(
    d367f626
vacuum.c 80.6 KB