Re: [PATCH] Don't block HOT update by BRIN index

Tomas Vondra <tomas.vondra@enterprisedb.com>

From: Tomas Vondra <tomas.vondra@enterprisedb.com>
To: Alvaro Herrera <alvherre@alvh.no-ip.org>
Cc: Josef Šimánek <josef.simanek@gmail.com>, Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2021-07-12T21:00:05Z
Lists: pgsql-hackers
On 7/12/21 10:55 PM, Alvaro Herrera wrote:
> On 2021-Jul-12, Tomas Vondra wrote:
> 
>> Well, one of us is confused and it might be me ;-)
> 
> :-)
> 
>> The point is that BRIN is the only index type with amhotblocking=false,
>> so it would return NULL (and thus it does not block HOT). All other
>> indexes AMs have amblocking=true and so should return rd_indexattr (I
>> forgot to change that in the code chunk).
> 
> But RelationGetIndexAttrBitmap is called for the table that contains the
> index (and probably contains some other indexes too), not for one
> specific index.  So the bitmap is about the columns involved in *all*
> indexes of the table ...
> 

D'oh! Well, I did say I might be confused ...

Yeah, that optimization is not possible, unfortunately.


regards

-- 
Tomas Vondra
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Ignore BRIN indexes when checking for HOT updates

  2. Move test for BRIN HOT behavior to stats.sql

  3. Ignore BRIN indexes when checking for HOT udpates