On Wed, Jun 15, 2016 at 1:44 PM, Kevin Grittner <kgri...@gmail.com> wrote:>> So what happens in this scenario: >> 1. ANALYZE runs really slowly - maybe the user-defined function it's >> running for the expression index is extremely long-running. >> 2. Eventually, the snapshot for ANALYZE is older than the configured >> value of snapshot_too_old. >> 3. Then, ANALYZE selects a page with an LSN new enough that it might >> have been pruned. >> >> Presumably, the ANALYZE ought to error out in this scenario, just as >> it would in any other situation where an old snapshot sees a new page. >> No? > > The test I showed creates a situation which (to ANALYZE) is > identical to what you describe -- ANALYZE sees a page with an LSN > recent enough that it could have been (and actually has been) > pruned. Why would it be better for the ANALYZE to fail than to > complete?
As I understand it, the reason we need to sometimes give "ERROR: snapshot too old" after early pruning is because we might otherwise give the wrong answer. Maybe I'm confused. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers