• T
    Now that we allow ANALYZE to run inside a transaction block, the locks · 2e10863b
    Tom Lane 提交于
    it takes could be held for quite awhile after the analyze step completes.
    Rethink locking of pg_statistic in light of this fact.  The original
    scheme took an exclusive lock on pg_statistic, which was okay when the
    lock could be expected to be released shortly, but that doesn't hold
    anymore.  Back off to a normal writer's lock (RowExclusiveLock).  This
    allows concurrent ANALYZE of nonoverlapping sets of tables, at the price
    that concurrent ANALYZEs of the same table may fail with 'tuple
    concurrently updated'.
    2e10863b
analyze.c 51.2 KB