On Sun, Aug 28, 2016 at 6:26 AM, Peter Geoghegan <p...@heroku.com> wrote: > On Thu, Aug 25, 2016 at 9:41 AM, Kuntal Ghosh > <kuntalghosh.2...@gmail.com> wrote: >> 2. For Btree pages, I've masked BTP_HALF_DEAD, BTP_SPLIT_END, >> BTP_HAS_GARBAGE and BTP_INCOMPLETE_SPLIT flags. > > Why? I think that you should only perform this kind of masking where > it's clearly strictly necessary. > > It is true that nbtree can allow cases where LP_DEAD is set with only > a share lock (by read-only queries), so I can see why BTP_HAS_GARBAGE > might need to be excluded; this is comparable to the heapam's use of > hint bits. However, it is unclear why you need to mask the remaining > btpo_flags that you list, because the other flags have clear-cut roles > in various atomic operations that we WAL-log. >
Right, I think there is no need to mask all the flags. However apart from BTP_HAS_GARBAGE, it seems we should mask BTP_SPLIT_END as that is just used to save some processing for vaccum and won't be set after crash recovery or on standby after WAL replay. -- With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers