> On May 17, 2024, at 12:10 PM, Mark Dilger <mark.dilger@enterprisedb.com> wrote:
>
>> Amcheck with checkunique option does check uniqueness violation between pages. But it doesn't warranty detection of
crosspage uniqueness violations in extremely rare cases when the first equal index entry on the next page corresponds
totuple that is not visible (e.g. dead). In this, I followed the Peter's notion [1] that checking across a number of
deadequal entries that could theoretically span even across many pages is an unneeded code complication and amcheck is
nota tool that provides any warranty when checking an index.
>
> This confuses me a bit. The regression test creates a table and index but never performs any DELETE nor any UPDATE
operations,so none of the index entries should be dead. If I am understanding you correct, I'd be forced to conclude
thatthe uniqueness checking code is broken. Can you take a look?
On further review, the test was not anticipating the error message "high key invariant violated for index". That
wasn'tseen in calls to bt_index_parent_check(), but appears as one of the errors from bt_index_check(). I am rerunning
thetest now....
—
Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company