Alvaro Herrera <[EMAIL PROTECTED]> writes: > What I'm currently thinking is that for each entry in the cache, we'll > save the current refcount at subtransaction start, and then restore it > at subtransaction abort. At subtransaction commit, the parent's > refcount will be updated with the subtransaction's refcount, which can > be greater than zero.
No it can't. The reference counts should all be exactly the same at subtrans start and subtrans commit, else there was a reference leak. This corresponds to complaining if the count isn't zero at main trans commit. I don't see that there should ever be a situation where a subtrans releases a refcount acquired by an outer trans or vice versa. While you're looking at that, what about the cache invalidation logic? I think subtrans commit is probably not different from CommandCounterIncrement, but I'm not sure how to clean up the caches and the pending-inval lists on subtrans abort. regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 7: don't forget to increase your free space map settings