On Fri, Jul 1, 2016 at 10:22 AM, Masahiko Sawada <sawada.m...@gmail.com> wrote: > Ah, you're right, I misunderstood. > > Attached updated patch incorporating your comments. > I've changed it so that heap_xlog_lock clears vm flags if page is > marked all frozen.
I believe that this should be separated into two patches, since there are two issues here: 1. Locking a tuple doesn't clear the all-frozen bit, but needs to do so. 2. heap_update releases the buffer content lock without logging the changes it has made. With respect to #1, there is no need to clear the all-visible bit, only the all-frozen bit. However, that's a bit tricky given that we removed PD_ALL_FROZEN. Should we think about putting that back again? Should we just clear all-visible and call it good enough? The only cost of that is that vacuum will come along and mark the page all-visible again instead of skipping it, but that's probably not an enormous expense in most cases. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (firstname.lastname@example.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers