On Tue, Apr 16, 2019 at 10:04 PM Peter Geoghegan <p...@bowt.ie> wrote: > > On Tue, Apr 16, 2019 at 12:00 PM Peter Geoghegan <p...@bowt.ie> wrote: > > Can you be more specific? What was the cause of the corruption? I'm > > always very interested in hearing about cases that amcheck could have > > detected, but didn't. > > FWIW, v4 indexes in Postgres 12 will support the new "rootdescend" > verification option, which isn't lossy, and would certainly have > detected your customer issue in practice. Admittedly the new check is > quite expensive, even compared to the other bt_index_parent_check() > checks, but it is nice that we now have a verification option that is > *extremely* thorough, and uses _bt_search() directly.
"rootdescend" is cool type of check. Thank you for noticing, I wasn't aware of it. But can it detect the missing downlink in following situation? A / \ B <-> C <-> D Here A has downlinks to B and D, which downlink to C is missing, while B, C and D are correctly connected with leftlinks and rightlinks. I can see "rootdescend" calls _bt_search(), which would just step right from C to D as if it was concurrent split. ------ Alexander Korotkov Postgres Professional: http://www.postgrespro.com The Russian Postgres Company