From: | Tomas Vondra <tomas(dot)vondra(at)enterprisedb(dot)com> |
---|---|
To: | Josef Šimánek <josef(dot)simanek(at)gmail(dot)com>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: [PATCH] Don't block HOT update by BRIN index |
Date: | 2021-06-29 23:20:01 |
Message-ID: | f08a028d-1012-e0ad-2356-86c17587830d@enterprisedb.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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(dot)simanek(at)gmail(dot)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
From | Date | Subject | |
---|---|---|---|
Next Message | Josef Šimánek | 2021-06-29 23:43:15 | Re: [PATCH] Don't block HOT update by BRIN index |
Previous Message | Josef Šimánek | 2021-06-29 22:53:02 | Re: [PATCH] Don't block HOT update by BRIN index |