"Alvaro Herrera" <alvherre@commandprompt.com> writes:
> The other question is about CommitTransactionCommand. Currently my
> EOXact routine barfs for every snapshot not unregistered on main
> transaction commit -- a leak. I see this as a good thing, however it
> forced me to be more meticulous about not having ActiveSnapshot be set
> in commands that have multiple transactions like VACUUM, multitable
> CLUSTER and CREATE INDEX CONCURRENTLY.
I believe ActiveSnapshot has to be set during CREATE INDEX CONCURRENTLY if
it's an expression index which calls a function which needs a snapshot...
AFAICT VACUUM had better not ever need a snapshot because its xmin isn't
included in other vacuum commands' globalxmin so there's no guarantee that if
it had a snapshot that the tuples visible in that snapshot wouldn't disappear
out from under it.
--
Gregory Stark
EnterpriseDB http://www.enterprisedb.com
Ask me about EnterpriseDB's 24x7 Postgres support!