On Wed, Mar 15, 2017 at 9:23 PM, Ashutosh Sharma <ashu.coe...@gmail.com> wrote: > >> >> Few other comments: >> 1. >> + if (ndeletable > 0) >> + { >> + /* No ereport(ERROR) until changes are logged */ >> + START_CRIT_SECTION(); >> + >> + PageIndexMultiDelete(page, deletable, ndeletable); >> + >> + pageopaque = (HashPageOpaque) PageGetSpecialPointer(page); >> + pageopaque->hasho_flag &= ~LH_PAGE_HAS_DEAD_TUPLES; >> >> You clearing this flag while logging the action, but same is not taken >> care during replay. Any reasons? > > That's because we conditionally WAL Log this flag status and when we > do so, we take a it's FPI. >
Sure, but we are not clearing in conditionally. I am not sure, how after recovery it will be cleared it gets set during normal operation. Moreover, btree already clears similar flag during replay (refer btree_xlog_delete). -- 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