Michael Paquier wrote: > On Mon, Oct 2, 2017 at 11:44 PM, Robert Haas <robertmh...@gmail.com> wrote: > > On Mon, Oct 2, 2017 at 10:19 AM, Michael Paquier > > <michael.paqu...@gmail.com> wrote: > >> So those bits could be considered for integration. > > > > Yes, and they also tend to suggest that the rest of the patch has value. > > Well, there are cases where you don't need any locking checks, and the > proposed patch ignores that. Take for example pageinspect which works > on a copy of a page, or just WAL replay which serializes everything, > and in both cases PageGetLSN can be used safely. So for compatibility > reasons I think that PageGetLSN should be kept alone to not surprise > anybody using it, or at least an equivalent should be introduced. It > would be interesting to make BufferGetLSNAtomic hold tighter checks, > like something that makes use of LWLockHeldByMe for example.
I'd argue about this in the same direction I argued about BufferGetPage() needing an LSN check that's applied separately: if it's too easy for a developer to do the wrong thing (i.e. fail to apply the separate LSN check after reading the page) then the routine should be patched to do the check itself, and another routine should be offered for the cases that explicitly can do without the check. I was eventually outvoted in the BufferGetPage() saga, though, so I'm not sure that that discussion sets precedent. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services -- Sent via pgsql-hackers mailing list (email@example.com) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers