Neil Conway <neilc(at)samurai(dot)com> writes:
> It occurred to me that if we elog(ERROR) during VACUUM, the vacuum
> activity hint will not be reset.
The code beginning at freelist.c line 645 is intended to deal with this.
> Attached is a patch which resets the vacuum activity hint in
> AbortTransaction().
I dislike exposing such low-level issues to AbortTransaction().
If an explicit reset is needed, there should be something like
an AtAbort_Buffers() call that does this as well as any other
low-level issues needed (eg AbortBufferIO()). Note that you
missed AbortSubTransaction() anyway.
regards, tom lane