A session that does not have any live snapshots does not have to be waited for

Tom Lane <tgl@sss.pgh.pa.us>

Commit: c973051ae69228129aeb8eb413d451ba4b326cad
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2009-04-04T17:40:36Z
Releases: 8.4.0
A session that does not have any live snapshots does not have to be waited for
when we are waiting for old snapshots to go away during a concurrent index
build.  In particular, this rule lets us avoid waiting for
idle-in-transaction sessions.

This logic could be improved further if we had some way to wake up when
the session we are currently waiting for goes idle-in-transaction.  However
that would be a significantly more complex/invasive patch, so it'll have to
wait for some other day.

Simon Riggs, with some improvements by Tom.

Files