Re: [PATCH] Don't block HOT update by BRIN index
От | Josef Šimánek |
---|---|
Тема | Re: [PATCH] Don't block HOT update by BRIN index |
Дата | |
Msg-id | CAFp7QwqFsKucYsftGVMAuFWTG5-tGy6EFYAfMzOj=UzZLsAuZA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [PATCH] Don't block HOT update by BRIN index (Tomas Vondra <tomas.vondra@enterprisedb.com>) |
Ответы |
Re: [PATCH] Don't block HOT update by BRIN index
|
Список | pgsql-hackers |
st 30. 6. 2021 v 1:20 odesílatel Tomas Vondra <tomas.vondra@enterprisedb.com> napsal: > > > > 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. Thanks for the hint. I'm attaching a fixed standalone patch. > regards > > -- > Tomas Vondra > EnterpriseDB: http://www.enterprisedb.com > The Enterprise PostgreSQL Company
Вложения
В списке pgsql-hackers по дате отправления: