Andres Freund <and...@anarazel.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