Re: [PATCH] Improve amcheck to also check UNIQUE constraint in btree index.

Поиск
Список
Период
Сортировка
Искать
От
Mark Dilger
Тема
Re: [PATCH] Improve amcheck to also check UNIQUE constraint in btree index.
Дата
в 19:42:26
Msg-id
65DAA5C7-457C-4BF8-ACAF-43E931A67BA0@enterprisedb.com
Ответ на
Список
Дерево обсуждения
[PATCH] Improve amcheck to also check UNIQUE constraint in btree index. Pavel Borisov <pashkin.elfe@gmail.com>
Re: [PATCH] Improve amcheck to also check UNIQUE constraint in btree index. Pavel Borisov <pashkin.elfe@gmail.com>
Re: [PATCH] Improve amcheck to also check UNIQUE constraint in btree index. Mark Dilger <mark.dilger@enterprisedb.com>
Re: [PATCH] Improve amcheck to also check UNIQUE constraint in btree index. Pavel Borisov <pashkin.elfe@gmail.com>
Re: [PATCH] Improve amcheck to also check UNIQUE constraint in btree index. Zhihong Yu <zyu@yugabyte.com>
Re: [PATCH] Improve amcheck to also check UNIQUE constraint in btree index. Pavel Borisov <pashkin.elfe@gmail.com>


> On May 17, 2024, at 12:10 PM, Mark Dilger  wrote:
> 
>> Amcheck with checkunique option does check uniqueness violation between pages. But it doesn't warranty detection of cross page uniqueness violations in extremely rare cases when the first equal index entry on the next page corresponds to tuple that is not visible (e.g. dead). In this, I followed the Peter's notion [1] that checking across a number of dead equal entries that could theoretically span even across many pages is an unneeded code complication and amcheck is not a 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 that the 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't seen in calls to bt_index_parent_check(), but appears as one of the errors from bt_index_check().  I am rerunning the test now....

—
Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company





В списке pgsql-hackers по дате отправления
От: Tomas Vondra
Дата:
От: Pavel Borisov
Дата:
FAQ