Re: Snapshot too old logging - Mailing list pgsql-hackers

From Magnus Hagander
Subject Re: Snapshot too old logging
Date
Msg-id CABUevEx-wHmAtdOMfi2Ar1Akn8fEPVnne8uqcFHUAMmQtS_YVg@mail.gmail.com
Whole thread Raw
In response to Re: Snapshot too old logging  (Robert Haas <robertmhaas@gmail.com>)
List pgsql-hackers
On Tue, Nov 15, 2016 at 7:43 PM, Robert Haas <robertmhaas@gmail.com> wrote:
On Tue, Nov 15, 2016 at 1:30 PM, Magnus Hagander <magnus@hagander.net> wrote:
> On Tue, Nov 15, 2016 at 7:27 PM, Robert Haas <robertmhaas@gmail.com> wrote:
>>
>> On Tue, Nov 15, 2016 at 1:18 PM, Magnus Hagander <magnus@hagander.net>
>> wrote:
>> > Is there value in showing which snapshot as well? Something like:
>> > DETAIL: snapshot <xyz> is too old to access relation <relation>
>>
>> IIUC, the granularity is per-block, not per-relation, so that might be
>> misleading.
>
> Does it help to let the user know which number? I'm not really sure what I'd
> do with that information, whereas knowing the relation would be very useful.
>
> But we could certainly say "snapshot <xyz> is too old to access block <nnn>
> of relation <rel>".

I think it would be better not to include either the snapshot or the
block number, and just find some way to reword the error message so
that it mentions which relation was involved without implying that all
access to the relation would necessarily fail.  For example:

ERROR: snapshot too old
DETAIL: One or more rows required by this query have already been
removed from "%s".


Sounds good to me. I've only really found use for the relation name so far :) 

How about the attached?

And if ppl are OK with it, thoughts on backpatching to 9.6?

--
Attachment

pgsql-hackers by date:

Previous
From: Kevin Grittner
Date:
Subject: Re: Snapshot too old logging
Next
From: Kevin Grittner
Date:
Subject: Re: Snapshot too old logging