From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Josef Šimánek <josef(dot)simanek(at)gmail(dot)com> |
Cc: | Tomas Vondra <tomas(dot)vondra(at)enterprisedb(dot)com>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: [PATCH] Don't block HOT update by BRIN index |
Date: | 2021-07-12 21:02:09 |
Message-ID: | 202107122102.lj3c3dmzyzv5@alvherre.pgsql |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 2021-Jul-12, Josef Šimánek wrote:
> > 2) Do we actually need to calculate and store hotblockingattrs
> > separately in RelationGetIndexAttrBitmap? It seems to me it's either
> > NULL (with amhotblocking=false) or equal to indexattrs. So why not to
> > just get rid of hotblockingattr and rd_hotblockingattr, and do something
> > like
> >
> > case INDEX_ATTR_BITMAP_HOT_BLOCKING:
> > return (amhotblocking) ? bms_copy(rel->rd_hotblockingattr) : NULL;
> >
> > I haven't tried, so maybe I'm missing something?
>
> relation->rd_indexattr is currently not used (at least I have not
> found anything) for anything, except looking if other values are
> already loaded.
Oh, that's interesting. What this means is that INDEX_ATTR_BITMAP_ALL
is no longer used; its uses must have all been replaced by something
else. It seems the only one that currently exists is for HOT in
heap_update, which this patch replaces with the new one. In a quick
search, no external code depends on it, so I'd be inclined to just
remove it ...
I think a boolean is much simpler. Consider a table with 1600 columns :-)
--
Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/
"Puedes vivir sólo una vez, pero si lo haces bien, una vez es suficiente"
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2021-07-12 21:07:46 | Re: [CLOBBER_CACHE]Server crashed with segfault 11 while executing clusterdb |
Previous Message | Tomas Vondra | 2021-07-12 21:00:05 | Re: [PATCH] Don't block HOT update by BRIN index |