Simon Riggs <simon@2ndQuadrant.com> writes:
> No need to wait for idle-in-transaction sessions during index builds.
> GetCurrentVirtualXIDs() specifically *includes* backends that have
> proc->xmin == InvalidTransactionId (0), but I'm not sure why.
Applied with the discussed tweaks. I also added some logic to make
DefineIndex recheck the GetCurrentVirtualXIDs output each time it is
about to wait for another session. If we observe some other session
to have xmin = 0 at any one of those instants, we don't have to
wait for it. Not sure how much that will really help in practice,
but it can't hurt.
regards, tom lane