• Tom Lane's avatar
    Ensure that seqscans check for interrupts at least once per page. · ed962fd7
    Tom Lane authored
    If a seqscan encounters many consecutive pages containing only dead tuples,
    it can remain in the loop in heapgettup for a long time, and there was no
    CHECK_FOR_INTERRUPTS anywhere in that loop.  This meant there were
    real-world situations where a query would be effectively uncancelable for
    long stretches.  Add a check placed to occur once per page, which should be
    enough to provide reasonable response time without adding any measurable
    overhead.
    
    Report and patch by Merlin Moncure (though I tweaked it a bit).
    Back-patch to all supported branches.
    ed962fd7
heapam.c 164 KB