Re: [HACKERS] heapgetpage() and ->takenDuringRecovery

2014-03-03 Thread Robert Haas
On Mon, Mar 3, 2014 at 8:33 AM, Andres Freund wrote: > On 2014-03-03 06:57:00 -0500, Robert Haas wrote: >> On Sun, Mar 2, 2014 at 8:39 AM, Andres Freund wrote: >> > I don't think this is neccessary >= 9.2. The are two only "interestings" >> > place >> > where PD_ALL_VISIBLE is set: >> > a) lazy_

Re: [HACKERS] heapgetpage() and ->takenDuringRecovery

2014-03-03 Thread Andres Freund
On 2014-03-03 06:57:00 -0500, Robert Haas wrote: > On Sun, Mar 2, 2014 at 8:39 AM, Andres Freund wrote: > > I don't think this is neccessary >= 9.2. The are two only "interestings" > > place > > where PD_ALL_VISIBLE is set: > > a) lazy_vacuum_page() where a xl_heap_clean is logged *before* > >

Re: [HACKERS] heapgetpage() and ->takenDuringRecovery

2014-03-03 Thread Robert Haas
On Mon, Mar 3, 2014 at 7:07 AM, Andres Freund wrote: >> I don't think there's any reason to believe that lazy_scan_heap() can >> only hit pages that are empty or have just been defragged. Suppose >> that there's a tuple on the page which was recently inserted; the >> inserting transaction has com

Re: [HACKERS] heapgetpage() and ->takenDuringRecovery

2014-03-03 Thread Andres Freund
On 2014-03-03 06:57:00 -0500, Robert Haas wrote: > On Sun, Mar 2, 2014 at 8:39 AM, Andres Freund wrote: > > While reading around which references to SnapshotData's members exist, I > > once more came about the following tidbit in heapgetpage(): > > /* > > * If the all-visible flag

Re: [HACKERS] heapgetpage() and ->takenDuringRecovery

2014-03-03 Thread Robert Haas
On Sun, Mar 2, 2014 at 8:39 AM, Andres Freund wrote: > While reading around which references to SnapshotData's members exist, I > once more came about the following tidbit in heapgetpage(): > /* > * If the all-visible flag indicates that all tuples on the page are > * vis

[HACKERS] heapgetpage() and ->takenDuringRecovery

2014-03-02 Thread Andres Freund
Hi, I am currently playing around with Robert's suggestion to get rid of changeset extraction's reusage of SnapshotData fields (basically that xip contains committed, not uncommited transactions) by using NodeTag similar to many other (families of) structs. While reading around which references t