Amit Langote wrote:
> On 9/4/2015 9:22 AM, Tatsuo Ishii wrote:
> >>
> >> In this case, scan->rs_startblock is 384 set by IndexBuildHeapRangeScan()
> >> using heap_setscanlimits(). One can imagine how the above heap finish
> >> criteria might not work as expected.
> >
> > What scares me is:
> >
> > 1) the bug will not be found unless someone inspects the internal data
> > of BRIN. Regression test is useless here.
> >
> > 2) the bug effectively causes vacuum scans the heap *twice*, which
> > will produce lots of I/O if the heap is not small.
> >
> > 3) I wonder if other index type is suffered by this type of bug.
> >
>
> About 3, it seems unlikely. Both the IndexBuildHeapRangeScan() and
> heap_setscanlimits() were introduced by the BRIN patch and I didn't find
> anything else using it, yet.
As I recall, there's some patch that Robert Haas or Amit Kapila that
wants to use that function. Maybe something in the parallel seqscan
patch series?
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services