Re: old_snapshot_threshold allows heap:toast disagreement - Mailing list pgsql-hackers

From Robert Haas
Subject Re: old_snapshot_threshold allows heap:toast disagreement
Date
Msg-id CA+TgmoY0UEEtFw9+9v3iLmUSAjtJPT0wpUk=zPcGr8mJ1QNz3g@mail.gmail.com
Whole thread Raw
In response to Re: old_snapshot_threshold allows heap:toast disagreement  (Amit Kapila <amit.kapila16@gmail.com>)
Responses Re: old_snapshot_threshold allows heap:toast disagreement
List pgsql-hackers
On Sat, Jul 30, 2016 at 8:17 AM, Amit Kapila <amit.kapila16@gmail.com> wrote:
> On Fri, Jul 29, 2016 at 1:10 AM, Robert Haas <robertmhaas@gmail.com> wrote:
>> On Wed, Jul 27, 2016 at 7:26 PM, Andres Freund <andres@anarazel.de> wrote:
>>
>> New version attached.
>
> +static inline void
> +InitToastSnapshot(Snapshot snapshot, XLogRecPtr lsn)
> +{
> + snapshot->satisfies = HeapTupleSatisfiesToast;
> + snapshot->lsn = lsn;
> +}
>
> Here, don't you need to initialize whenTaken as that is also used in
> TestForOldSnapshot_impl() to report error "snapshot too old".

Hmm, yeah.  This is actually a bit confusing.  We want the "oldest"
snapshot, but there are three different notions of "oldest":

1. Smallest LSN.
2. Smallest whenTaken.
3. Smallest xmin.

Which one do we use?

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: TODO item: Implement Boyer-Moore searching in LIKE queries
Next
From: Etsuro Fujita
Date:
Subject: Re: Oddity in EXPLAIN for foreign/custom join pushdown plans