> 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.
Best regards, Andrey Borodin.