Andres Freund <andres(at)anarazel(dot)de> writes:
> But now I do wonder why we need to know whether the command is top level
> or not? Why isn't the correct thing to instead look at what the current
> backend's xmin is? Seems like you could just replace
> *oldestXmin = XidFromFullTransactionId(ReadNextFullTransactionId());
> with
> *oldestXmin = MyProc->xmin;
> Assert(TransactionIdIsValid(*oldestXmin));
Ummm ... since VACUUM doesn't run inside a transaction, it won't be
advertising an xmin will it?
Maybe you could make something like this work, but I think it'd still
have to treat CLUSTER as a special case. Not sure it's worth it.
regards, tom lane