On Tue, Mar 13, 2018 at 3:26 PM, Andrey Borodin <x4...@yandex-team.ru>
wrote:

> > 13 марта 2018 г., в 17:02, Alexander Korotkov <a.korot...@postgrespro.ru>
> написал(а):
> >
> > BTW to BTW. I think we should check pending list size with
> GinGetPendingListCleanupSize() here
> > +
> > +       /*
> > +        * If fast update is enabled, we acquire a predicate lock on the
> entire
> > +        * relation as fast update postpones the insertion of tuples
> into index
> > +        * structure due to which we can't detect rw conflicts.
> > +        */
> > +       if (GinGetUseFastUpdate(ginstate->index))
> > +               PredicateLockRelation(ginstate->index, snapshot);
> >
> > Because we can alter alter index set (fastupdate = off), but there still
> will be pending list.
> >
> > And what happen if somebody concurrently set (fastupdate = on)?
> > Can we miss conflicts because of that?
> No, AccessExclusiveLock will prevent this kind of problems with enabling
> fastupdate.
>

True.  I didn't notice that ALTER INDEX SET locks index in so high mode.
Thus, everything is fine from this perspective.

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

Reply via email to