Re: [PATCH] Don't block HOT update by BRIN index
От | Tomas Vondra |
---|---|
Тема | Re: [PATCH] Don't block HOT update by BRIN index |
Дата | |
Msg-id | f08a028d-1012-e0ad-2356-86c17587830d@enterprisedb.com обсуждение исходный текст |
Ответ на | Re: [PATCH] Don't block HOT update by BRIN index (Josef Šimánek <josef.simanek@gmail.com>) |
Ответы |
Re: [PATCH] Don't block HOT update by BRIN index
|
Список | pgsql-hackers |
On 6/30/21 12:53 AM, Josef Šimánek wrote: > st 30. 6. 2021 v 0:31 odesílatel Josef Šimánek <josef.simanek@gmail.com> napsal: >> >> Hello! >> >> Tomáš Vondra has shared a few ideas to improve BRIN index in czech >> PostgreSQL mail list some time ago [1 , in czech only]. This is first >> try to implement one of those ideas. >> >> Currently BRIN index blocks HOT update even it is not linked tuples >> directly. I'm attaching the initial patch allowing HOT update even on >> BRIN indexed columns. This patch went through an initial review on >> czech PostgreSQL mail list [1]. > > I just found out current patch is breaking partial-index isolation > test. I'm looking into this problem. > The problem is in RelationGetIndexAttrBitmap - the existing code first walks indnatts, and builds the indexattrs / hotblockingattrs. But then it also inspects expressions and the predicate (by pull_varattnos), and the patch fails to do that for hotblockingattrs. Which is why it fails for partial-index, because that uses an index with a predicate. So there needs to be something like: if (indexDesc->rd_indam->amhotblocking) pull_varattnos(indexExpressions, 1, &hotblockingattrs); if (indexDesc->rd_indam->amhotblocking) pull_varattnos(indexPredicate, 1, &hotblockingattrs); This fixes the failure for me. regards -- Tomas Vondra EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
В списке pgsql-hackers по дате отправления: