On July 19, 2016 7:14:42 PM PDT, Amit Kapila <amit.kapila16@gmail.com> wrote:
>On Wed, Jul 20, 2016 at 5:02 AM, Andres Freund <andres@anarazel.de>
>wrote:
>> On 2016-07-19 18:09:59 -0500, Kevin Grittner wrote:
>>> As far as I can see, to do this the way that Andres and Amit
>>> suggest involves tying in to indexam.c and other code in incredibly
>>> ugly ways.
>>
>> Could you explain the problem you're seing?
>>
>> Isn't pretty much all all that we need to do:
>> 1) add a InitSnapshotToast(Snapshot originMVCCSnap), which sets
>SnapshotData->lsn
>> to the the origin snapshot's lsn
>> 2) adapt TestForOldSnapshot() to accept both HeapTupleSatisfiesMVCC
>and
>> HeapTupleSatisfiesToast?
>>
>
>I also think so. However, it is not clear what is the best place to
>initialize toast snapshot. One idea could be to do it in
>GetSnapshotData() after capturing the required information for the
>valid value of old_snapshot_threshold. Do you have something else in
>mind?
There's very few callsites using toast snapshots. I'd just do it there. Don't think we ever use GetSnapshotData for
them.
Andres
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.