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?